apostilabd

57
  Banco de Dados  

Upload: priscila-ferreira

Post on 17-Jul-2015

477 views

Category:

Documents


0 download

TRANSCRIPT

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 1/57

 

Banco de Dados 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 2/57

 Escola Contec

Página 2 de 57

Sumário

Sumário ...............................................................................................................................2 Apresentação.......................................................................................................................4  Conceitos gerais de banco de dados...................................................................................5 

Conceito de banco de dados...........................................................................................5 Definindo “dado” e “informação” ..................................................................................... 6 Informação ..................................................................................................................6 Dado............................................................................................................................6  

Sistema de gerenciamento de banco de dados (SGBD).................................................6 Banco de dados relacional...................................................................................................7 

Conceito de banco de dados relacional...........................................................................7 Entidades ou tabelas relacionais.................................................................................7 Estrutura de uma tabela ou entidade...........................................................................7 

Identificadores de registros (chaves)...............................................................................8 Chave primária............................................................................................................8 Chave estrangeira.......................................................................................................9 

Modelos de banco de dados..............................................................................................10 Modelo Lógico ...............................................................................................................10 Modelo Conceitual......................................................................................................... 11 

Conceitos de modelagem de dados...................................................................................14 Modelo Entidade Relacionamento – MER.....................................................................14 

Entendendo os símbolos de um MER .......................................................................14 Entidades ( tabelas) ..............................................................................................14 Atributos ( campos ) ..............................................................................................15 Relacionamentos ..................................................................................................15 

Tipos de relacionamento (cardinalidade).......................................................................17 Cardinalidade mínima................................................................................................17 Cardinalidade máxima...............................................................................................17

 Cardinalidade um para um (1:1)................................................................................18 Cardinalidade muitos para muitos (N:N)....................................................................19 

Normalização de dados .....................................................................................................21 Primeira forma normal (1NF).........................................................................................21 Segunda forma normal (2NF)........................................................................................22 Terceira forma normal (3NF)..........................................................................................24 

Ferramentas para modelagem de banco de dados ...........................................................26 Case Studio 2 ou Toad Data Modeler ............................................................................26 ERwin ............................................................................................................................27 

Sites dos desenvolvedores................................................................................................29 Ferramentas de banco de dados.......................................................................................30 

Microsoft Access............................................................................................................30 Microsoft Sql Server ......................................................................................................33 Oracle Database............................................................................................................37 MySql.............................................................................................................................39  PostgreSQL...................................................................................................................41  

SQL - Strutured Query Language .....................................................................................44 Como surgiu o SQL.......................................................................................................44 Padronização SQL ........................................................................................................ 44 Conjuntos de comandos SQL........................................................................................44 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 3/57

 Escola Contec

Página 3 de 57

DDL – Data Defination Language..............................................................................45 DML – Data Manipulation Language.........................................................................45 DQL – Data Query Language....................................................................................45 DCL – Data Control Language .................................................................................. 45 DTL – Data Transaction Language............................................................................45 

Manipulação de dados (DML)............................................................................................47 Inserindo dados em uma tabela ....................................................................................47 

Inserindo dados sem especificação de colunas (ou campos) ................................... 47 Inserindo dados em colunas especificadas...............................................................48 Inserindo valores NULL (nulo)...................................................................................49 

Atualizando dados existentes ............................................................................................51 Atualizando valores em uma tabela...............................................................................51 

Cláusula WHERE......................................................................................................52 Excluindo dados ............................................................................................................ 54 Conjunto de instruções DDL..........................................................................................54 

Tipo de dados do SQL...............................................................................................54 Criando tabelas ......................................................................................................... 55 Campos obrigatórios .................................................................................................55

 Regras de integridade na criação da tabela..............................................................56 Alterando a estrutura de dados da tabela..................................................................56 Como definir tabelas relacionadas ............................................................................56 

Removendo tabelas de dados.......................................................................................56 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 4/57

 Escola Contec

Página 4 de 57

Apresentação

Estamos em um mundo povoado de informações e muitas delas organizadas earmazenadas, tanto física como eletronicamente. Por vezes isto nos passa despercebido,mas pense por um instante: Nós temos um registro geral(RG), um número de CPF, dadosem nossa agenda eletrônica do celular, ficha cadastral em locadoras de vídeo, matrículaescolar e uma imensidade a mais de informações que nos cercam. Como os exemploscitados anteriormente, percebemos que todas elas(ou boa parte delas) são de grandeimportância e fazem parte de um controle(Sistema). Imagine por exemplo o dono de umavídeo-locadora ter que memorizar todos os 4583 clientes de sua empresa, com seusrespectivos nomes, endereços, telefones, dependentes, títulos locados e tudo mais? Umatarefa impossível não acha? Para suprir esta necessidade existem os bancos dedados(ou base de dados) que armazenam e gerenciam estas informações. Nestaapostila vamos compreender como os bancos dados funcionam e principalmente comoconstruir(modelar) um banco de dados coeso. Durante nosso estudos vamos nos deparar

com uma série de técnicas e conceitos, além de conhecermos algumas ferramentas paraa aplicação destas.

Um dica: O estudo de banco de dados dentro da área de desenvolvimento de aplicações,é de extrema importância, pois o banco de dados é de grande relevância para umsoftware, seja ele uma aplicação desktop ou serviço WEB. Eu diria que um bom sistematem 50% de regra de negócios(Software) e 50% de banco de dados. Portanto é bom quese extraia o máximo possível do conteúdo apresentado aqui.

Um ótimo estudo para você!

Gabriel Otávio 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 5/57

 Escola Contec

Página 5 de 57

Conceitos gerais de banco de dados

Banco de dados é um conceito de armazenamento de informações que necessariamentenão precisa estar armazenado em algum dispositivo eletrônico(Um computador porexemplo). Na verdade, um BD(Banco de dados) é uma série de informaçõesarmazenadas de forma eficiente.

Imagine que você tenha uma agenda(de papel) com os nomes de seus amigos. Os nomesão escritos na agenda de acordo com a letra da pessoa, logo o Oswaldo será escrito naletra O e o Ronaldo na letra R da caderneta. O que acabei de exemplificar nada mais éque um banco de dados, os dados estão armazenados de forma organizada para suamanipulação. Portanto o conceito de Banco de Dados é mais antigo que oarmazenamento eletrônico, contudo o armazenamento eletrônico hoje é o meio maiseficaz de manipular um BD. Imagine você ao invés de registar seus amigos e indexá-los(classificar) em ordem Alfabética você queira classificá-los por ordem alfabética mas

por sobrenome. Uma tarefa um pouco desgastante se sua agendinha tiver umaquantidade considerável de informações. Você teria que rescrevê-la novamente enquantoque em um BD eletrônico, basta um simples comando e pronto: tudo já está classificadopor sobrenome.

Neste capítulo veremos mais amplamente os conceitos gerais de banco de dados, ostipos de sistemas de gerenciamento de banco de dados e os modelos de banco de dados.

Seja bem-vindo!

Conceito de banco de dados 

Com já foi dito no tópico anterior, vimos que um banco de dados é mais antigo que oformato eletrônico de armazenamento, contudo estamos estudando TI econseqüentemente devemos nos aprofundar no estudo de banco de dados eletrônico,portanto vamos aprender agora o conceito de banco de dados par este meio.

O banco de dados nada mais é que a representação de um modelo real armazenado emarquivos de informações, com estruturas e regras para a manipulação desta estrutura. Deforma mais simples podemos dizer que um banco de dados é o arquivo físico de dadosarmazenado em meio eletrônico(Disco rígido por exemplo), onde encontram-searmazenados os dados e seus relacionamentos.

Assim podemos definir que:

Banco de dados é um meio de armazenamento de dados e regras em formato físico,armazenado em um dispositivo eletrônico como um disco rígido.

Um banco de dados normalmente é utilizado por um(ou vários) sistema de informações.Por exemplo, quando vamos ao supermercado comprar um sabonete, o atendente docaixa passa o produto no leitor ótico e no monitor é apresentado os dados do

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 6/57

 Escola Contec

Página 6 de 57

produto(nome, preço,etc.). A tela que aposenta os dados na verdade é o Sistema dosupermercado (mais conhecido como sistema de frente de loja), mas os dados que foramapresentados nela foram consultados em um banco de dados.

Definindo “dado” e “informação” 

Agora que já estamos mais entendidos com o conceito de banco de dados, vamos ter umentendimento mais claro do que é um dado e do que é uma informação.

Informação

Informação é o valor que será cadastrado em um banco de dados, de forma generalizadapodemos dizer a informação é o valor bruto. Um valor mais conceitual como por exemplo,as informações de um cliente ou um produto.

Dado

Dado já é o valor derivado da informação, este valor já está lapidado para a manipulação.Por exemplo, dentre as informações de clientes podemos descrever com dados os nomedo cliente o endereço, o cpf, o RG, o telefone, a data de cadastro e outros valores. Ouseja, temos a informação já conceitual para a manipulação em um banco de dados.

Sistema de gerenciamento de banco de dados (SGBD) 

Após o banco de dodos sair do meio físico para o meio eletrônico algumas alteraçõesforam necessárias para sua maior facilidade de uso com por exemplo o conceito deSGBD ou DBMS com alguns autores o nomeiam(DBMS nada mais é que SGBD semtradução ao português).

Antes os dados e suas regras de armazenamentos não tinham uma definição clara, ouseja, tudo era misturado gerando assim uma dependência enorme de linguagem deprogramação e claro a manutenção de um banco de dados era mais cara, mais demoradae menos prática.

Após o conceito de SGBD o que ocorreu basicamente foi uma separação entre dados eregras de armazenamentos dividindo o BD em duas camadas: BD e SGBD. Assim temosos dados(somente as informações) armazenados separadamente das regras dearmazenamento.

Levando em consideração que um BD é construído para ser utilizado por um programa,este conceito elimina a responsabilidade do programador de saber exatamente como foicriando o BD, basta ao programador saber como os dados foram planejados. A istodamos o nome de abstração de dados. Ou seja, não há necessidade de implementar o

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 7/57

 Escola Contec

Página 7 de 57

funcionamento das estruturas do banco de dados, muito menos saber como estas foramcriadas.

É importante lembrar que a aplicação desenvolvida tem suas próprias regras quecomplementam as regras da estrutura do SGBD. Estas regras são chamadas de regras

de negócio.

Banco de dados relacional

Em se tratando de banco de dados, existem vários modelos de estruturas como o Bancode dados orientado a objetos o banco de dados e outras metodologias de aplicaçãoorganização. Neste apostila abordaremos o modelo de Banco de dados relacional, pois éo mais utilizado no mercado e possui uma grande variedade de ferramentas.

Conceito de banco de dados relacional 

No modelo de dados relacional os dados são organizados e agrupados em tabelas(relacionais). Estas tabelas guardam estes dados e podem possuir referência a outratabela (alguns autores usam o termo entidade). Assim o banco todo não passa de umasérie de tabelas que se referenciam (sempre que isto for necessário, claro).

Entidades ou tabelas relacionais

As tabelas ou entidades são conceitos de “coisas”, que podem ser físicas ou não, ou

seja, podemos ter um uma tabela de um banco de dados de vídeo-locadora denominadacliente que representa os clientes da empresa, assim a tabela é o modelo abstrato deuma “coisa” física, real. Em contra partida podemos também ter uma tabela de nomelocação que armazena o registro de locações dos cientes. Agora temos uma entidadeabstraída de uma “coisa” não física, pois a locação na verdade é o ato de o cliente locarum ou vários títulos.

Neste mesmo exemplo temos duas tabelas que necessitam de uma ligação. Perceba quepara se fazer uma locação é necessário ter os dados do cliente. Logo os dados do clienteestão na tabela cliente que está relacionado à tabela locação. Isto é um exemplo debanco de dados relacional.

Estrutura de uma tabela ou entidade

Vimos que uma tabela é a representação abstrata de um conjunto de dados (“coisa”).Agora vamos ver como uma tabela está estruturada.

Uma tabela é composta de um conjunto de campos ou colunas. Um campo é a definiçãomais a precisa de um dado(nome, endereço, data do cadastro, etc.). O SGBD tem a

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 8/57

 Escola Contec

Página 8 de 57

capacidade de impor uma camada de regras para o correto preenchimento de valores aum campo. São as regras de validação ou consistência.

Após a definição de campos de uma tabela, ou a estruturação da entidade a mesma estáapta a receber dados. Os dados são cadastrados em tabelas em linhas onde cada linha

representa um conjunto único de dados. As linhas também são denominadas de registrosou tuplas.

Para entender melhor observe a ilustração a seguir:

Identificadores de registros (chaves) 

As tabelas de um banco relacionais podem contar chaves que nada mais são queidentificadores de registros. As chaves de uma tabela são responsáveis por manter aintegridade de dados de uma tabela e referenciar os relacionamentos entre estasentidades.

Chave primária

A chave primária é o identificador de registros de uma tabela. Ela de conter um valorúnico e obrigatório. Pode ser formada por um ou mais campos (neste caso chama-sechave primária composta).

Imagine a seguinte situação. O dono de uma vídeo-locadora cadastra seus clientes epercebe que precisa fazer buscas e filtro dentro do banco de dados. Como por exemplo,listar os clientes inadimplentes ou os melhores clientes da locadora. Para isso ele precisaidentificar seus clientes por um campo que tenha um valor único, ou seja, um valor quenunca mais vai se repetir dentro da tabela. Em um primeiro instante logo pensamos no

Colunas Registros

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 9/57

 Escola Contec

Página 9 de 57

campo nome do cliente, mas devemos considerar o cadastro de homônimos(pessoas comnomes iguais), então temos que pensar em outro dado (neste caso do cliente) que possarser a chave primária. O CPF seria um ótimo campo para este fim, pois todos clientesdevem ter CPF no ato do cadastro (Obrigatório) e todos os CPFs são únciis(Não existemCPFs com números iguais).

Muito banco de dados preferem identificar seus registros por campos próprios comoCódigo, ID, Matrícula, etc. Esta técnica de ter um controle próprio para a chave tem duasvantagens: Identifica melhor o registro. A matrícula de um alno por exemplo, poderá serformada pela seguinte lógica: dia da matrícula, mês e ano da matricula e númeroseqüencial de atendimento. Assim um aluno de matricula 0702063 foi o cadastrado em2007 do mês 02 no dia 06 e este aluno foi o terceiro atendimento do dia. Outra vantagemé que o controle fica dentro do sistema e não externo. Imagine uma empresa de locaçãode carros fazer um grande investimento no desenvolvimento de seu software, onde osveículos são identificados por suas placas e logo após as placas de veículos seremabandonadas pelo controle do DETRAN. A empresa iria arcar com um grande prejuízopois teria que re-desenvolver boa parte do sistema.

Chave estrangeira

A chave estrangeira nada mais é que a referência a uma outra tabela(relacionamento).

Vamos supor que neste sistema de vídeo-locadora um cliente pode fazer várias locações,logo as locações devem ser identificadas como pertencentes a este cliente. Para issodeve-se criar uma referência ao cliente. Ou seja, definir que a locação X pertence aocliente Y. Para isto precisamos fazer um clone da chave primária da tabela“origem”(cliente neste caso) para a tabela “destino” (locação).

Veja a seguir a representação da chave estrangeira:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 10/57

 Escola Contec

Página 10 de 57

Observe que as locações do cliente 102 são identificadas em uma coluna Código doCliente da Tabela Locação ou seja a referência da locação nada mais é que a chaveestrangeira.

O Conceito de chave primária e chave estrangeira é de fundamental importância para aimplementação de um banco de dados relacional.

Modelos de banco de dados

Os modelos representativos de um banco de dados nada mais é que um esquema(oudiagrama) da representação das informações e atribuições de um banco de dados.Exitem dois modelos de representação gráfica de um banco de dados, o modelo

conceitual e o modelo lógico vamos ver as características de cada um

Modelo Lógico 

O Modelo lógico costuma ser menos utilizado por sua dependência ao tipo de SGBDrepresentado. Ou seja, existe diferença entre modelos de uma estrutura de bancorelacional e uma estrutura de banco orientado a objetos ou em rede.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 11/57

 Escola Contec

Página 11 de 57

Assim podemos afirmar que o Modelo Lógico é uma representação de um BD que levaem consideração o tipo de banco utilizado (relacional, rede, orientado a objetos...).

Como esta apostila aborda o modelo de dados relacional não abordaremos o modelológico de representação de dados.

Modelo Conceitual 

O Modelo conceitual tem por finalidade apresentar somente a estrutura de dados, sendoeste independente do tipo de base, seja ela relacional em rede ou orientada a objetos. OModelo conceitual faz uma representação gráfica do esquema de dados utilzando ummodelo gráfico chamado de Modelo Entidade Relacionamento ou MER, alguns autores

ainda utilizam o termo Diagrama Entidade Relacionamento ou DER.Veja abaixo uma estrutura de dados representada em um modelo gráfico MER:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 12/57

 Escola Contec

Página 12 de 57

Nota: É importante lembrar que o modelo conceitual e MER representam somente aestrutura de dados da entidade (tabela), desconsiderando o conteúdo da mesma.Verifique também o atributo(campo) Código foi grafado no diagrama sem acento, istoocorre por motivos técnicos, pois a maior parte das ferramentas de banco de dados nãopermitem acentos, espaços e caracteres especiais.

Considerando nosso exemplo como sendo o sistema de locadora, apresentamosanteriormente a entidade cliente tendo relação com a entidade locação

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 13/57

 Escola Contec

Página 13 de 57

Veja que as chaves primárias das entidades tem uma representação diferenciada ( ● ) eo relacionamento foi representado por uma ligação em forma de linha e um losangolo. Naponta de ligação entre as entidades temos a letra “n” na entidade Cliente e o número “1”na entidade Locação. Isto representa a cardinalidade, ou o tipo de relação entre astabelas. Vamos abordar mais a frente este conteúdo.

Nota: Alguns autores e ferramentas de modelagem de dados utilizam diagramas comalguma diferença, contudo com a mesma lógica estrutural.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 14/57

 Escola Contec

Página 14 de 57

Conceitos de modelagem de dados

Agora que sabemos a base tanto sobre entidades (tabelas) e como é feito a

representação destas entidades, seus atributos e relacionamentos, vamos estudar comodevemos modelar um projeto de dados. A partir de agora vamos nos aprofundar mais emconceitos de análise de dados, dicas e modelos mais complexos de entidade erelacionamento. Estarei disponibilizando algumas ferramentas de modelagem para aaplicação de nosso conteúdo teórico.

Modelo Entidade Relacionamento – MER 

O Modelo entidade relacionamento como já visto no tópico anterior é a representação

gráfica de uma estrutura de dados e seus relacionamentos. Este modelo foi originalmenteapresentado por Peter Chen em 1970 com o objetivo de padronizar o desenvolvimento dediagrama de dados. Alguns autores chamam o MER de DER, Diagrama EntidadeRelacionamento.

Este modelo gráfico se destaca por permitir abstração total de dados, ou seja, somente aestrutura de dados é manipulada, ficando de fora a aplicação e o tipo de banco utilizado.Entretanto a utilização somente de um MER no processo de desenvolvimento deaplicações não é recomendado, pois o fluxo de dados e estado das estapas do processoficam de fora deste diagrama. Normalmente profissionais de análise e desenvolvimentoutilizam o MER em conjunto com outros diagramas, sendo que os diagramas UML(Unified Modeling Language ou Linguagem unificada de modelagem) mais utilizados por

sua padronização.

Entendendo os símbolos de um MER

Dentro de um diagrama MER temos vários símbolos gráficos, vamos agora estudar caraum destes.

Entidades ( tabelas) 

As entidades são representadas com um retângulo.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 15/57

 Escola Contec

Página 15 de 57

Entidade Cliente 

Atributos ( campos ) 

São representados por um oval, sendo que a chave primária tem o oval totalmentepreenchido.

Entidade cliente com seus atributos,sendo que codigo é o atributo chave primária.

Relacionamentos 

Os relacionamentos são apresentados por uma linha que liga as entidades, nesta linha éapresentado outro símbolo: um losangolo que representa a ação daquele relacionamento.

Entidade cliente relacionada a entidade locacao.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 16/57

 Escola Contec

Página 16 de 57

O losango representa a ação do relacionamento.

Nota: Algumas ferramentas de modelagem não costumam utilizar o símbolo losangolo.Ele é simplesmente subtraído do diagrama.

Estes são os símbolos básicos de um MER, no próximo tópicos vamos estudar comodefinimos os tipos de relacionamentos e a estes símbolos que agora conhecemos outrosirão se juntar para formar um diagrama mais preciso.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 17/57

 Escola Contec

Página 17 de 57

Tipos de relacionamento (cardinalidade) 

Para o funcionamento perfeito de um banco de dados relacional é importante saber que

devemos impor as entidades os tipos de relacionamentos permitidos. Estas regras derelação também são denominadas cardinalidades.

Cardinalidade mínima

A cardinalidade mínima define se o relacionamento é obrigatório entre as entidades. Ossímbolos que definem este relacionamento são:

1 ou I - Quando existe a obrigatoriedade de um vínculo entre as entidades.

Ο

- Quando não existe a obrigatoriedade de vinculo entre as entidades.

Vamos entender melhor estes símbolos analisando o diagrama abaixo:

Levando em consideração nosso exemplo de banco de dados de uma vídeo locadorapodemos analisar este diagrama da seguinte maneira de acordo com a cardinalidademínima:

Na relação Cliente – Dependente a cardinalidade mínima não impõe o cadastramentoobrigatório de um dependente ao se cadastrar um cliente, já que a cardinalidade édefinida com o símbolo Ο (zero).

Na relação Dependente – Cliente a cardinalidade mínima já impõe a existênciaobrigatória de um cliente para se cadastrar um dependente, uma vez que a cardinalidadefoi definida com o símbolo I (um).

Cardinalidade máxima

A cardinalidade máxima representa a quantidade máxima de trasações(relacionamentos)que são permitidos entre entidades relacionadas.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 18/57

 Escola Contec

Página 18 de 57

Vamos entender melhor a cardinalidade máxima analisando a figura a seguir:

Na figura acima percebemos que agora existe um novo símbolo (veja abaixo) indicandoque a quantidade máxima de ocorrências no relacionamento Cliente – Dependente éilimita (ou n ). Ou seja, um cliente pode possuir n (vários) dependentes.

Tipo n (muitos) ou ilimitado 

As cardinalidades mínima e máxima podem ser utilizadas em conjunto no mesmorelacionamento. Veja abaixo:

A figura acima representa um relacionamento com as duas cardinalidades em conjunto.Nele podemos perceber que o relacionamento Dependente – Cliente exige um clientepara o cadastramento de um dependente ( cardinalidade mínima); contudo orelacionamento Cliente – Dependente nos diz que a existência de um dependente para ocadastramento de um cliente não é obrigatório (cardinalidade mínima novamente) esabemos que um cliente pode cadastrar vários (n) dependentes (cardinalidade máxima).

O conceito deste tipo de cardinalidade é do tipo 1:N ou Um para Muitos.

Cardinalidade um para um (1:1)

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 19/57

 Escola Contec

Página 19 de 57

A cardinalidade um para um ou 1:1 é a imposição do relacionamento de um único registroentre duas entidades relacionadas.

Vamos entender melhor: Saindo um pouco de nosso exemplo de vídeo locadora, vamos

imaginar que agora temos a necessidade de contruir um banco de dados que representaum condomínio residencial. Neste condomínio, temos a seguinte situação os condôminosguardam seus veículos na garagem privativa do condomínio, contudo cada condomíniotem o direito a uma vaga de garagem. Assim poderíamos representar (abstrair) estasinformações em um MER da seguinte maneira.

Neste caso a entidade condomino está em uma relação de um para um com a entidadevaga ou seja: um condômino possui somente uma vaga e uma vaga pertence asomente um condômino.

Cardinalidade muitos para muitos (N:N)

O relacionamento de do tipo muitos para muitos ou N:N acontece quando duas entidadespossuem vários registros se relacionando com vários registros.

Imaginemos agora o nosso sistema de vídeo locadora a seguinte situação: Um clientepode locar vários títulos e um mesmo título pode ser locado por clientes. Esterelacionamento pode ser representado da seguinte maneira:

Uma característica importante da cardinalidade N para N é que ela só existe em nível deabstração, ou projeto. Em nível físico este relacionamento fica impossível de seimplementar. Para tanto utilizamos o seguinte: Entre as entidades relacionadasadicionamos uma nova entidade, denominada tecnicamente de entidade associativa com

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 20/57

 Escola Contec

Página 20 de 57

a função de permitir tal relacionamento.

Veja agora o diagrama a seguir que mostra o mesmo relacionamento já no modelo físicode dados.

O relacionamento anterior com a entidade associativa já criada. O nome da entidadeassociativa deve fazer referência ao relacionamento. Normalmente utiliza-se o nome daligação (pertence, possui, etc...) , o nome das entidades ( cliente_titulo) ou até um nomemais sugestivo e pautado na realidade como no exemplo no diagrama acima.

Estas são as regras básicas pra a criação de um projeto de banco de dados. Com baseno que já foi apresentado estamos aptos a modelar e desenvolver bancos de dados,contudo ainda veremos como otimizar um diagrama de dados e veremos tambémalgumas ferramentas que podemos utiliar para a modelagem de dados.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 21/57

 Escola Contec

Página 21 de 57

Normalização de dados

Normalização de dados é um conjunto de limitações impostas a uma estrutura de dados

para que a mesma fique mais concisa e sem falhas estruturais. Inúmeras formas denormalização de dados foram definidas por diversos autores, contudo, em se tratando debanco de dados de modelo relacional, a normalização proposta por Codd é o métodomais utilizado e aceitável atualmente no mercado e em meios acadêmicos. Anormalização proposta or Codd é formado por um conjunto de três formas básicas(também chamadas de NF).

Vale lembrar que a normalização de dados não tem forma de lei, sendo que estas regraspor diversos motivos sejam eles estruturais ou técnicos, podem ser ignoradas ou atémodificadas de acordo com a visão do profissional ou equipe de modelagem de dados.Podemos dizer que somente a primeira forma normal ou 1NF seria obrigatória, ficando as

demais a cargo da visão do profissional de modelagem do banco de dados.

Primeira forma normal (1NF) 

A primeira forma normal diz que atributos de uma entidade que tem características dearmazenamento de vários valores, ou seja, campos poderão assumir mais de um valorpara um mesmo registro (também conhecido como atributo(s) multi valorado(s)) devemgerar uma nova entidade (ou ser extraído para outra entidade já existente) de dadosrelacionada a entidade origem.

Vamos analisar a seguinte situação:

E entidade cliente possui os seguintes atributos: Codigo, Nome, CPF, RG e Dependente.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 22/57

 Escola Contec

Página 22 de 57

Para aplicar a 1NF nos atributos basta verificar se o mesmo deverá ter mais de um valorpara o mesmo registro.

Dica: Faça uma pergunta para o atributo utilizando o nome e propósito da entidade.

Exemplo:

Pergunta: Um cliente pode ter mais de um nome?

Resposta: Não, o atributo não é multi valorado.

Pergunta: Um cliente pode ter mais de um CPF?

Resposta: Não, o atributo não é multi valorado.

Pergunta: Um cliente pode ter mais de um RG?

Resposta: Não, o atributo não é multi valorado.

Pergunta: Um cliente pode ter mais de um dependente?

Resposta: Sim, o atributo deve gerar uma nova entidade.

Assim teremos o seguinte diagrama após a aplicação da 1NF:

Segunda forma normal (2NF) 

A segunda forma normal fala sobre a dependência relativa de dados. Mas o que istosignifica? Em termos claros podemos dizer que todo atributo de uma entidade que nãodepender exclusivamente da chave primária, deve gerar uma nova entidade.

Vamos entender melhor, quando dizemos que um atributo é dependente exclusivamenteda chave primária, devemos entender que a chave primária representa a proópria

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 23/57

 Escola Contec

Página 23 de 57

entidade em si. Por exemplo, a chave primária codigo da entidade cliente, representa ocliente, logo qualquer atributo que não seja dependente exclusivo do cliente cai nasegunda forma normal.

Vamos à pratica para entender melhor, vamos imaginar um sistema que gerenciaassociados de um determinado plano de saúde. Veja o diagrama a seguir:

Neste diagrama temos o seguintes atributos: Codigo, Nome, CPF, RG,Numero_contrato e Dt_vencimento_contrato. Para identificar quais destes atributosestão na 2NF devemos verificar se o atributo dependente do Cliente para isso bastaverificar se o atributo se alterado descaracteriza o cliente, por exemplo, se trocarmos o

atributo Nome o cliente será descaracterizado? Sim, o cliente ficaria totalmentedescaracterizado, se trocarmos o CPF e o RG? Teríamos o mesmo resultado, pois estesatributos provam que são dependentes da chave primária. Agora vamos verificar oatributo Dt_vencimento_contrato, se trocarmos o valor deste atributo o cliente serádescaracterizado? Não, será o mesmo cliente. Já identificamos que este campo podenão ser dependente direto da chave primária. Vamos analisar melhor,Dt_vencimento_contrato depende da chave primária ou do atributo Numero_contrato?Este atributo depende não da chave primária, mas sim de outro atributo. Aí está umcampo onde devemos aplicar a 2NF.

Com a 2NF aplicada teríamos o seguinte diagrama:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 24/57

 Escola Contec

Página 24 de 57

Ao aplicar a 2NF todos os atributos independentes devem ir para uma nova entidaderelacionada a entidade de origem. No diagrama acima percebemos que o atributoDt_vencimento_contrato gerou a entidade Contrato.

Terceira forma normal (3NF) 

A terceira forma normal utiliza o principio de transitividade, e diz que todo atributo devemdepender não transitivamente da chave primária.

Mas o que é isso? Transitividade é o que faz o modelo relacional de dados ser tãoutilizado no mercado, pois ele permite através de seus relacionamentos transitar de umaentidade a outra sem a necessidade de se recriar determinado atributo.

Vamos entender melhor a 3NF. Veja o diagrama abaixo:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 25/57

 Escola Contec

Página 25 de 57

Vimos que existe uma relação entre as entidades Cliente, Cidade e Pedido. Vamosimaginar os seguintes atributos na entidade Cliente e cidade:

Cliente: Codigo, Nome, UF, codigo_cidade, nome_cidade

Cidade: Codigo e NomePedido: Numero, Data, codigo_cliente, codigo_cidade

Analisando melhor os atributos vemos que Pedido tem relação com Cliente e com Cidade,mas a relação com Cidade é desnecessária, pois através da relação da entidade Pedidocom a entidade Cliente podemos chegar (transitividade) até a entidade Cidade.

Teríamos o seguinte fluxo: Pedido -> Cliente -> Cidade, ou seja o cliente seria a pontepara se chegar a Cidade. Assim, o relacionamento Pedido - Cidade deve ser eliminado.

Este é o principio da 3NF, toda dependência não transitiva deve ser eliminada.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 26/57

 Escola Contec

Página 26 de 57

Ferramentas para modelagem de banco de dados

Trabalhar com banco de dados exige antes de tudo muiti planejamento e análise, pois o

projeto de um bom banco relacional é o sucesso de um ótimo sistema. Algumasferramentas tem a função ajudar o projetista ou desenvolvedor de BDs a terem umaferramente eficaz na construção e manipulação de estruturas de dados.

Estas ferramentas são deniminadas Ferramentas CASE (Computer Aided SoftwareEngineering) e foram projetadas para manipular bancos em nível de projeto, ou seja, emdiagramas e ao mesmo tempo manipular este projeto em nível físico. Linguagem demáquina.

Vamos apresentar uma série de ferramentas e suas características. É claro que outras

tantas existem e estão a disposição de forma gratuita ou não para os projetistas eempresas de desenvolvimento. Fica a cargo de cada profissional ou equipe estabelecerqual é a melhor ferramenta para determinado projeto.

Case Studio 2 ou Toad Data Modeler 

O Case studio é um ferramenta case desenvolvida pela empresa Charonware. O CaseStudio teve seu nome alterado recentemente para Toad (sapo) Data Modeler. O caseStudio permite trabalhar em nível de abstração (diagramas) e tem suporte a maioria dos

bancos de dados utilizados no mercado como MySql, PostGre SQL, Oracle e outros.

O Case Studio se destaca por ser um software leve, gratuito de poderoso.

Veja abaixo algumas telas do software:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 27/57

 Escola Contec

Página 27 de 57

Escolhendo o tipo de base de dados 

Diagramas (ER) sendo manipulado pela ferramenta 

ERwin 

O ERwin é o software mais conhecido entre profissionais e empresas, trata-se umsoftware completo. Abrange a maioria dos bancos que estão no mercado. Fazengenharia reversa de base de dados e claro: Trabalha com modelo de abstração(diagramas).

Trata-se um software que é indispensável a qualquer projetista, por ser amplamenteutilizado no mercado.

Veja alguma telas do ERwin:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 28/57

 Escola Contec

Página 28 de 57

Modelo de dados em diagrama ER 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 29/57

 Escola Contec

Página 29 de 57

Diagrana gerado pelo ERwin 

Sites dos desenvolvedores

http://www.ca.com ERwin

http://www.casestudio.com Case Studio

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 30/57

 Escola Contec

Página 30 de 57

Ferramentas de banco de dados

Vamos estudar alguns softwares que são utilizados para a construção e gerenciamento dobanco de dados.

Microsoft Access 

O Microsoft Access é um banco de dados relacional para a plataforma Windows. Foi oprimeiro banco de dados com Interface gráfica integrado a camada de dados.

Sua principal característica é a simplicidade de uso, devido a uma interface simples einterativa. Outra vantagem do Access em relação a outras ferramentas é que no mesmoarquivo, podemos desenvolver a camada de dados(tabelas e relacionamentos) e acamada de aplicação, também chamada de front-end. Para tanto, o Access utiliza Macros

programadas de forma não codificada e a linguagem Visual Basic que no Access édenomidada Visual Basic for Applications (VBA).

A principal desvantagem do Access é a escalabilidade (crescimento do banco de dados),ou seja, aplicações desenvolvidas em Access tendem a ser pequenas aplicações, comosistemas de departamento ou de pequenas empresas. Pois o Acces não se comporta demaneira eficaz com grande volume de dados e perde muito em desempenho emaplicações em rede.

O Access é distribuido junto as versões Professional do Microsoft Office

Para mais detalhes acesse http://www.microsoft.com 

Veja algumas telas do Access:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 31/57

 Escola Contec

Página 31 de 57

Tela inicial do Access 

Um banco de dados aberto na guia tabelas 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 32/57

 Escola Contec

Página 32 de 57

Visualização da estrutura de dados e relacionamentos (Diagrama ER)

Um formulário de interface para usuários gerado dentro da própria ferramenta 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 33/57

 Escola Contec

Página 33 de 57

Ambiente de desenvolvimento de scripts em Visual Basic for Applications 

Microsoft Sql Server 

O MS Sql Server é um sistema de gerenciamento de base de dados relacional daMicrosoft voltado para grande volume de dados.

O Sql Server, atualmente está na versão 2005 e é dotado de vários recursos. O Softwareé muito utilizado para o mercado corporativo e sistemas não web. Seu principalconcorrente é o Oracle. O Sql tem se destacado no mercado de banco por seu preçoreduzido em comparação ao banco Oracle e a grandes parcerias. A produtora deERPs(sistemas integrados de gestão) SAP, recentemente firmou uma parceria de venda

de seu produto integrado ao SQL Server com um diferencial de preço bastanteconvidativo.

O Sql é fornecido em várias versões. Atualmente o SQL possui uma versão gratuitadenominada SQL Server Express Edition. Esta versão é muito indicada para pequenas eem alguns casos médias aplicações, pois possui algumas limitações como por exemplo:só roda em um único processador, trabalha com no máximo 1GB de RAM e cada bancode dados não pode ultrapassar 4GB de espaço de armazenamento o que para muitossistemas é um tamanho inalcançável.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 34/57

 Escola Contec

Página 34 de 57

Veja a seguir algumas telas do SQL Server na versão 2008.

Sql Server 2005 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 35/57

 Escola Contec

Página 35 de 57

Interface de gerenciamento do banco de dados 

Esquema de compatibilidade e camadas 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 36/57

 Escola Contec

Página 36 de 57

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 37/57

 Escola Contec

Página 37 de 57

Vale lembrar que além da interface padrão do Sql Server outras empresas tambémdistribuem suas próprias ferramentas de gerenciamento do banco de dados, inclusiveferramentas CASE como visto em tópicos anteriores.

Oracle Database 

O Oracle é um SGBD idealizado por Larry Elisson, Elisson é um visionário e co-fundadorda Oracle Cop. O banco de dados Oracle, além de ser pioneiro é considerado o melhorem diversos aspectos por boa parte dos profissionais e empresas. Podemos destacara aconfidencialidade e escalabilidade do banco de dados, dentre outros fatores.

A Oracle além de distribuir o Banco de dados também oferece um pacote dedesenvolvimento de aplicações baseadas no BD. Além do pacote de desenvolvimento foidesenvolvido uma linguagem de programação para o SQL denominada PL/SQL.

Outra vantagem que fez do Oracle uma ótima ferramente de dados é o fato de o bancoser multi-plataforma, ou seja, roda em vários sistemas operacionais como Windows, Unix,Linux, etc.

Veja algumas telas do banco Oracle:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 38/57

 Escola Contec

Página 38 de 57

Interface WEB – Versão Oracle 11g 

Interface de gerenciamento – Login 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 39/57

 Escola Contec

Página 39 de 57

Interface de gerenciamento 

MySql 

O Mysql é um banco de dados relacional e multi-plataforma que inicialmente foidesenvolvido em meados dos anos 80, por dois suecos, David Axmark, Allan Larsson eMichael "Monty" Widenius. Logo após as primeiras versões os MySql adotou o modelo dedesenvolvimento aberto, ou seja, o desenvolvimento da ferramenta passou a ter auxilio deprogramadores de todo o mundo, ficando a MySQL AB (uma empresa constituída para ogerenciar a ferramenta), com o dever de divulgar e distribuir suas versões que contamcom versões gratuitas (open sorce) e versões pagas, pois incluem suporte edocumentação. Com o advento de linguagens WEB o Mysql rapidamente foi acolhido pordesenvolvedores de aplicações neste ambiente. Sendo diversas vezes premiado comomelhor banco de dados para ambiente WEB, juntamente com a linguagem PHP.

Hoje o Mysql está mais robusto e completo com a versão 5.x.x, outra novidade é que aSun Microsysten recentemente comprou a Mysql AB numa negociação de 200 bilhões dedolares.

A principal característica do Mysql é sua facilidade de uso e sua velocidade. Alcançando

marcas e muitas vezes superando marcas de tempo de transações superiores a seusconcorrentes como Oracle e Sql-Server.

O Mysql não possui uma ferramenta de gerenciamento em ambiente gráfico, contudovárias ferramentas são distribuídas por desenvolvedores e empresa.

Veja algumas imagens de interfaces de gerenciamento do Mysql:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 40/57

 Escola Contec

Página 40 de 57

MyAdmin – gerenciador web bastante utilizado 

Instalação do MySql em ambiente Windows 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 41/57

 Escola Contec

Página 41 de 57

Interface de gerenciamento da Quest Software denominada Toad 

PostgreSQL

O PostgreSQL é um sistema aberto e livre de gerenciamento de base de dados relacional,teve como berço a Universidade de XXXX na DFADSS onde o projeto Ingres, deu origema uma base simplória de dados e a partir dela o projeto foi tomando corpo e conseguindo

novos desenvolvedores. Rebatizado de PostgreSQL, hoje o banco de dados é bastanteconsistente e conta com uma adoção considerável de desenvolvedores e empresas.

O PostgreSQL inicialmente contava com versões para ambiente Unix/Linux, a partir daversão 8.x foram liberadas versões para Windows, inclusive com instalador.

O PostgreSQL não possui uma interface gráfica única, vários desenvolvedores eempresas construíram ferramentas complementares para incorporar ferramentas degerenciamento.

Veja algumas telas do PostgreSQL:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 42/57

 Escola Contec

Página 42 de 57

Ferramenta da sem gerenciando um banco do PostgreSQL

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 43/57

 Escola Contec

Página 43 de 57

Ferramenta da Microlap para gerenciamento de base de dados PostgreSQL

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 44/57

 Escola Contec

Página 44 de 57

SQL - Strutured Query Language

A quantidade de base de dados que temos no mercado é enorme, muitas basespertencem a empresas diferentes, e claro, como já vimos, a base de dados é umacamada de uma aplicação. Logo surge uma dúvida: e se fosse necessário trocar estacamada de dados, trocar o banco de dados por uma ferramenta de outro fabricante?

Tecnicamente, a troca não seria traumática, pois os o SGBDs utilizam uma linguagemúnica. O SQL, ou Strutured Query Language (Linguagem estruturada de consultas).

Assim a comunicação com o SGBD sempre será via SQL, seja através de comandosinseridos pelo usuário, ou por um software gerenciador (front-end) ou através de umaaplicação.

A partir de agora vamos aprofundar nosso estudo nesta linguagem de “programação” para

banco de dados.

Como surgiu o SQL

O SQL tem como berço os laboratórios da IBM, a estrutura básica de manipulação foibaseada nas teorias de dados relacionais de Codd (já falamos sobre ele em tópicosanteriores, lembra do MER?). Logo, o SQL foi incorporado e melhorado pela RelationalSoftware, futura Oracle Corporation (já ouvimos falar dela também). Com o passar dotempo e adoção do modelo relacional de dados o SQL tornou-se uma linguagempraticamente padrão a qualquer SGBD.

Padronização SQL

Como na prática o SQL já estava padronizado, coube a ANSI (Amerfican NationalStandart Institute), algo semelhante a nossa ABNT (Associação Brasileira de NormasTécnicas). Padronizar o SQL em 1987. A padronização da ANSI foi a base para maistarde a linguagem ter a padronização ISO (International Standart Institute), e tornar opadrão SQL mundial.

Periodicamente o padrão sofre alterações, a última atualização foi o padrão de 2003.

Nota: Algumas ferramentas de dados, fazem pequenas alterações no padrão SQL e criamum SQL derivado do ISO ou ANSI SQL.

Conjuntos de comandos SQL

O SQL tem uma série de comandos e cláusulas e estes estão classificados em conjuntos.Que são:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 45/57

 Escola Contec

Página 45 de 57

DDL – Data Defination Language

As instruções DDL manipulam a estrutura de dados de um banco, através dos comandosDDL – SQL podemos criar tabelas, índices, relacionamentos entre tabelas, podemosainda alterar ou excluir estas estruturas, ou seja, o DDL é utilizado para criar e alterar aestrutura de dados.

DML – Data Manipulation Language

As instruções DML manipulam os dados de uma estrutura já criada. Assim, enquanto asinstruções DDL criam por exemplo tabelas, as instruções DML manipularam os registrosdestas tabelas, podendo inserir, alterar ou excluir registros.

As instruções DML são as mais utilizadas pois elas é que fazem o banco de dadosfuncionar.

DQL – Data Query Language

a Data Query Language tem somente uma instrução, contudo uma das mais utilizadas. Ainstrução SELECT é responsavel pelo retorno de uma consulta a uma tabela de dados.

Esta instrução é complementada por uma série de cláusulas e parâmetros que veremos

mais adiante.

DCL – Data Control Language

A DCL ou linguagem de controle de dados é utilzada como uma camada de segurança,onde o usuário precisa ativar ou não esta camada. Este grupo de comandos tem duasinstruções:

GRANT - Autoriza ao usuário executar ou definir operações.REVOKE - Restringe ou altera as restrições de um usuário.

DTL – Data Transaction Language

As instruções DTL (Linguagem de transação de dados) são utilizadas para conferir maisconfiabilidade as transações. Estas instruções são essenciais em grandes operações esistemas com grande volume de dados. A DTL tem basicamente a possibilidade deexecutar uma transação(ou transações) somente se esta for bem sucedida do começo aofim. As instruções DTL também tem a possibilidade de descartar transações já efetuadas.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 46/57

 Escola Contec

Página 46 de 57

Salvaguardando a base de dados.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 47/57

 Escola Contec

Página 47 de 57

Manipulação de dados (DML)

A linguagem de manipulação de dados ou DML (data manipulation language) é a parcelado SQL que manipula através de três comandos a entrada, alteração e exclusão de dadosem uma ou várias estruturas de dados(tabelas).

O DML é de grande utilidade tanto para desenvolvedores de software quandogerenciadores de base de dados.

Vamos aprender também um sub-comando do SQL: A cláusla Where  que pode serutilizada tanto do DML quanto DTL (data transaction language).

Inserindo dados em uma tabela 

O primeiro comando DTL-SQL que estudaremos será a instrução responsável por inserirdados em uma tabela.

O comando é denominado INSERT e segue uma sintaxe bem estruturada com duasvariações. Vamos verificar o funcionamento das duas:

Inserindo dados sem especificação de colunas (ou campos)

INSERT into nome_da_tabela VALUES ('valor1', 'valor2', 100);

Vamos entender melhor:

Utilizando esta sintaxe a instrução INSERT irá inserir da tabela nome_da_tabela osvalores: Valor1, Valor2 e 100.

A principal caracteristica desta sintaxe é que os valores ( VALUES) são adicionados naordem em que os campos estão dispostos da tabela.

Vamos entender melhor analisando um pequeno exemplo:

Considere a seguinte tabela de dados:

Nome: tb_clienteCampos: codigo (Numérico), Nome (Varchar[50]), cidade(varchar[30]), UF(char[2]).

Nota: Por hora basta sabermos que o campo código é uma sequencia numérica e nome,cidade e UF são do tipo caracter e estes devem ser inseridos entre aspas. Mas adiantenas instruções DDL-SQL iremos estudar com mais detalhes os tipos de dados do SQL.

Agora vamos imaginar que precisamos inserir o seguinte registro a tabela tb_cliente:

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 48/57

 Escola Contec

Página 48 de 57

Código:1Nome: Livia Guimarães DelfinoCidade: ColatinaUF: ES

Neste caso nossa instrução INSERT ficará da seguinte maneira:

INSERT into tb_cliente VALUES (1,'Livia Guimarães Delfino' , 'Colatina', 'ES');

Inserindo dados em colunas especificadas

Existe uma maneira de se especificar quais colunas (ou campos) receberão os dadosinseridos.

Esta sinstaxe é muito utilizada em tabelas com muitos campos, onde muitos não sãorequeiros(de inserção obrigatória).

A principal vantagem de se especificar as colunas é que não importa mais a ordem doscampos na tabela, pode-se alterar as posições sem prejudicar um script já criado.

Veja a sintaxe da instrução INSERT neste caso:

INSERT into nome_da_tabela (coluna1, coluna2) VALUES ('valor1', 'valor2');

Neste caso, após o nome da tabela de dados deve-se especificar quais colunasreceberão os dados (VALUES).

Nota: A ordem de digitação das colunas deve ser respeitada no momento da digitaçãodos dados (VALUES).

Vamos a um exemplo para entender melhor:

Considerando a seguinte tabela de dados:

Nome: tb_clienteCampos: codigo (Numérico), Nome (Varchar[50]), cidade(varchar[30]), UF(char[2]).

Vamos supor que queremos inserir um registro a esta tabela com os seguintes dados:

Codigo:2Nome: Maria FernandaUF: ES

Veja que neste caso o campo cidade não será utilzado.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 49/57

 Escola Contec

Página 49 de 57

A instrução INSERT com colunas especificadas ficará da seguinte maneira:

INSERT into tb_cliente (codigo, nome, uf) VALUES (2, 'Maria Fernanda', 'ES');

Perceba que o nome das colunas devem ser as mesmas especificadas na tabela. Tenhamuita atenção ao digitar o nome da coluna. Verifique também que a ordem de digitaçãodos valores deve ser respeitada. Se as colunas foram especificas da ordem: Codigo,Nome e UF os valores devem ser lançados como 2, 'Maria Fernanda' e 'ES'.

Inserindo valores NULL (nulo)

Nem toda coluna é de preenchimento obrigatório em uma tabela. Por exemplo, nem todocliente possui um número de telefone celular, logo esta coluna pode receber em algunsregistros valores nulos.

Para inserir um valor nulo (NULL em SQL) podemos proceder de duas maneiras:

Ignorando a coluna não especificando a mesma em uma instrução com colunas definidasou inserindo a constante NULL, este segundo caso é mais utilizado quando não utilizamosa instrução INSERT com especificação de colunas.

Vamos ver dois Exemplos:

Considerando a seguinte estrutura de dados:

Nome: tb_cliente

Campos: codigo (Numérico), Nome (Varchar[50]), cidade(varchar[30]),UF(char[2]),Tel(char[10]),Cel(char[10]).

Onde precisaremos inserir o seguinte registro:

Codigo: 3Nome: Oswaldo CarvalhoCidade: VitóriaUF: ESTel:2733429876

Observe que a coluna (ou campo) Cel não tem valor para este registro.

Ignorando o campo em um exemplo de instrução INSERT com colunas especificadas:

INSERT int tb_cliente (codigo, nome,cidade, UF, tel) Values (3,'Oswaldo Carvalho','Vitória','ES','2733429876');

Neste caso simplesmente não adicionamos a coluna Cel.

Utilizando a constante NULL em um exemplo de instrução INSERT sem colunas

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 50/57

 Escola Contec

Página 50 de 57

especificadas:

INSERT into tb_cliente Values(3,'Oswaldo Carvalho','Vitória','ES',' 2733429876', NULL);

Neste caso o campo foi preenchido pela constante NULL que representar um valor nulopara a coluna do registro.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 51/57

 Escola Contec

Página 51 de 57

Atualizando dados existentes

Dentro do DML, podemos também alterar os valores de um ou vários registros de umatabela de dados.

A instrução de comando utilizada para este fim denomina-se UPDATE e é seguida dacláusula condicional Where. Que abordaremos detalhadamente neste tópico e é utilziadaem outras instruções SQL.

A instrução UPDATE é bastante utilizada por desenvolvedores de sistemas eadministradores de banco de dados.

Atualizando valores em uma tabela 

A instrução UPDATE tem uma sintaxe bastante simples, contudo muito poderosa e deve-se ter muito cuidado ao se executar a instrução UPDATE principalmente na administraçãode uma base de dados envolvendo vários registros, uma vez que nem sempre podemosutilizar a restauração de transaçòes (DTS-SQL).

Atualizando o valor de uma única coluna

A sintaxe da instrução UPDATE é a seguinte:

UPDATE nome_da_tabelaSET coluna1 = 'novo valor'[Where Condição]

Observe que somente uma única coluna é alterada.

Vamos a um exemplo:

Considere a seguinte estrutura de dados:

Vamos supor que queremos alterar todos os valores da coluna UF de 'ES' para 'MG'.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 52/57

 Escola Contec

Página 52 de 57

Neste caso somente precisaremos alterar uma única coluna (UF).

Veja como fica a instrução UPDATE neste caso:

UPDATE tb_clienteSET UF='ES;

Nota: Neste caso não existe a necessidade de uma condição de filtro de dados, portantoa cláusula condicional Where foi removida da instrução UPDATE uma vez que a cláusulaWhere não é obrigatória.

Cláusula WHERE

A cláusula Where que pode livremente ser traduzida como “onde” é uma cláusula nãoobrigatória utilizada de forma complementar em várias instruções SQL. Ela impõe umacondição de filtro para os registros de uma ou varias tabelas.

Para a utilização da cláusula Where é necessário ter um parâmetro de comparação,normalmente uma coluna e um valor de filtro.

Por exemplo: para complementar uma instrução SQL, como o UPDATE por exemplo,para todos os clientes da UF='ES' devemos impor esta condição. Veja o exemplo abaixo:

UPDATE tb_clienteSET cidade='vitória' Where UF= 'ES'

Neste caso o Where impõe um filtro condicional somente aos clientes da UF='ES'.

Alé do campo colocamos um comparador lógico e uma expressão de comparação.

Os operadores lógicos:

= Igualdade<> Diferente> Maior< Menor>= Maior ou igual<= Menor ou igual

Podemos ter mais de uma condição Where em uma mesma instrução SQL para tantodevemos utilizar os conjuntores lógicos: and (e) e or (ou).

Veja outro exemplo:

Neste caso queremos alterar todos os registros de clientes da cidade de Vitória do ES.

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 53/57

 Escola Contec

Página 53 de 57

A instrução SQL fica da seguinte forma:

UPDATE tb_clienteSET cidade='Serra' Where cidade='vitória' and uf='es';

Veja que utilizamos o comparador de igualdade duas vezes e o conjuntor lógico and.

Atualizando múltiplas colunas

Além de utilizar o UPDATE para atualizar somente uma única coluna podemos tambématualizar várias colunas em uma mestra instrução. Esta operação poupa muito trabalhodesta forma, não se faz necessário a criação de várias instruções para atualização dedados.

Vamos a sintaxe da instrução:

UPDATEnome_da_tabelaSET coluna1='valor1',

coluna2='valor2',coluna3='valor3';

[Where condição];

Perceba que a definição de alteração SET é utilizado somente uma única vez, e asalterações de colunas são separadas pelo caractere “ , “ (vírgula).

Vamos a um exemplo:

Considere a seguinte estrutura de dados:

Neste exemplo vamos alterar a cidade de todos os registros para Belo Horizonte e todasas UFs para MG:

UPDATE tb_clienteSET cidade='Belo Horizonte', UF='MG';

Note que a vírugula separa as alterações da instrução e a clásula condicional Where nãotem a necessidade de utilização.

Neste próximo exemplo vamos considerar que será necessário altear a cidade para BeloHorizonte e a UF para MG somente do cliente 3 (Oswaldo Carvalho):

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 54/57

 Escola Contec

Página 54 de 57

UPDATE tb_clienteSET cidade='Belo Horizonte', UF='MG' Where codigo=3

Veja que agora a clausula Where condiciona e impõe a alteração somente ao cliente decodigo = 3 (Oswaldo Carvalho).

Excluindo dados 

O comando Delete exclui as linhas que satisfazem a uma determinada condição na tabelaespecifi cada.

Se a condição estiver ausente, o efeito é a exclusão de todas as linhas da tabela. Oresultado vai ser uma tabela válida, porém vazia.

Caso a tabela possua alguma coluna que seja chave estrangeira para outra tabela, e osvalores dessa tabela estão sendo usados como referência, a exclusão não poderá serrealizada, pois a exclusão resultará em campos nulos na tabela referenciada.

Sintaxe

Delete from Nome_Da_Tabela where Condição;

Exemplo de utilização da instrução DELETE

Delete from Produtos where Descricao_Produto = ‘PERA’;

Conjunto de instruções DDL

O principal objetivo dos comandos da linguagem de defi nição de dados (DDL) épossibilitar ao usuário criar as tabelas do seu modelo de banco de dados, bem como osrelacionamentos entre as tabelas.

Tipo de dados do SQL

Varchar(n) – é uma cadeia de caracteres de tamanho

variável, com o tamanho “n” máximo defi nido pelo usuário. Por exem plo: um campo doTipo Varchar(30) signifi ca que ali podem ser cadastrados, no máximo, 30 símbolosquaisquer, como números e letras;

Int – defi ne um tipo inteiro;

Numeric(p,d) – é um número de ponto fi xo cuja precisão é defi nida pelo usuário. Onúmero consiste de “p” dígitos e “d” casas decimais. Por exemplo, um campo do tipoNumeric (9,2), tem a seguinte representação: 9999999.99, ou seja, 7 dígitos antes da

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 55/57

 Escola Contec

Página 55 de 57

vírgula e 2 após a vírgula, totalizando os 9 dígitos;

Real – é um número com ponto fl utuante, ou seja, a representação de número real podemudar de acordo com a representação atual. Como por exemplo: 100.0 é igual a 10.0E+2;

Float(n) - é um número com ponto fl utuante. A precisão é defi nida pelo usuário, em pelomenos “n” dígitos;

Date – representa uma data que contém um ano (com quatro dígitos), mês e dia do mês.Por exemplo, a data 23/01/1998 será representada no MySQL como sendo 2005-01-1998;

Time – representa horário, em horas, minutos e segundos.

Bem, agora que você já conhece os tipos de dados existentespara Linguagem SQL, você conseguirá defi nir as tabelas quefarão parte de seu banco de dados, conforme será estudado nas

próximas seções.

Criando tabelas

A tarefa de criar uma tabela signifi ca especifi car seu nome, o número e o nome de cadacoluna e o tipo de dados que será armazenado em cada coluna.Porém, esse processo pode ser mais amplo. A tabela é um conjunto de dados e com issopode-se especifi car as regras de acesso e uso, as quais recebem o nome de regras deintegridade.Uma tabela em SQL é defi nida usando o comando Create Table que possui como

sintaxe:create table nome da tabela (Atributo1 Tipo1,Atributo2 Tipo2,..,AtributoN TipoN,<regras de integridade 1>,<regras de integridade 2>,...,<regras de integridade n>);

Normalmente, um banco de dados abrange um conjunto de tabelas. Para cada uma delasdeve ser executado um comando Create Table para sua defi nição.

Campos obrigatórios

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 56/57

 Escola Contec

Página 56 de 57

Para defi nir que o campo de uma tabela é obrigatório, deve-se colocar aexpressão Not Null na defi nição do mesmo, da seguinte forma: 

Nome da Coluna Tipo de Dado Not Null

Regras de integridade na criação da tabela

A especifi cação Primary Key diz que os atributos Atributo1, Atributo2,..., Atributo Nformam a chave primária da tabela. A chave primária corresponde ao campo, ou campos,que não pode de forma alguma ter valores repetidos dentro da tabela;

A cláusula check determina que um campo específi co da tabela só será preenchido se acondição P for satisfeita;

A cláusula foreing key inclui a relação dos atributos que constituem a chave estrangeira

(Atributo1, Atributo2, ..., AtributoN) e à qual da tabelas esses campos fazem referência emoutra tabela;

Todos os atributos de uma chave primária são declarados implicitamente como not null.

Alterando a estrutura de dados da tabela

Para isso, será necessária a utilização do comando em SQL:Alter Table, que possui a seguinte sintaxe:

Alter Table Nome_ da_Tabela Operação Nome_ do_ Campo Nova Regra; 

Existem duas operações para esta instrução de comando:

 ADD Adiciona um novo campo. MODIFY Altera a estrutura de um campo. 

Como definir tabelas relacionadas

Para definir uma ou várias chaves estrangeiras devemos utilizar a seguinte sintaxe:

Foreign Key (campo_chave_estrangeira)references Alunos (campo_chave_primaria); 

Dica: Utilize o Foreign Key no fim da instrução Create Table.

Removendo tabelas de dados 

5/14/2018 apostilabd - slidepdf.com

http://slidepdf.com/reader/full/apostilabd-55a931b9a68c6 57/57

 Escola Contec

Página 57 de 57

Assim como você pode criar novas tabelas para um banco de dados, você tambémpode removê-las através do comando Drop Table. 

Sua sintaxe é:

Drop Table Nome_da_tabela;

Porém, algumas regras devem ser respeitadas para que uma tabela seja removida,ou “dropada”, no jargão de banco de dados.

Estas regras são:

uma tabela só pode ser removida se ela não possuir campos consideradoscomo sendo chave estrangeira para outra tabela;

se uma tabela possui como referência uma chave estrangeira para outra

tabela, será preciso primeiro remover as tabelas para as quais são feitas asreferências;

  uma tabela só pode ser removida se não possuir nenhum dado cadastrado,caso contrário, primeiro ela deverá ser esvaziada para depois ser removida. 

Referências bibliográficas

JESUS, João Batista de. Ansi SQL 89 92. Axcel Booksdo Brasil Ltda, 2004.

MEDEIROS, M. Oracle 8i: conceitos básicos.

Florianópolis: Advanced, 2000.

SOARES, W. MySQL : conceitos e aplicações. SãoPaulo: Érica, 2001. _  _  _