Sie sind auf Seite 1von 41

Apostila de Banco de Dados

Prof. Ricardo Lima Amaral

ndice
Introduo...............................................................................................................................03 Banco de Dados.....................................................................................................................04 Dado.......................................................................................................................................04 Informao..............................................................................................................................04 Conhecimento.........................................................................................................................05 Arquivos..................................................................................................................................05 Abstrao de dados................................................................................................................07 Modelos de BD.......................................................................................................................07 Modelo Hierrquico.................................................................................................................07 Modelo de Redes....................................................................................................................09 Modelo Relacional..................................................................................................................10 Entidades................................................................................................................................10 Atributos..................................................................................................................................11 Diagrama Entidade-Relacionamento (DER)...........................................................................11 Relacionamentos....................................................................................................................11 Natureza.................................................................................................................................11 Cardinalidade..........................................................................................................................11 Tipos de associaes.............................................................................................................11 Integridade de Dados.............................................................................................................11 Modelo Entidade-Relacionamento (MER)..............................................................................11 Normalizao..........................................................................................................................11 Primeira Forma Normal (1FN)................................................................................................20 Segunda Forma Normal (2FN)...............................................................................................21 Terceira Forma Normal (3FN)................................................................................................22 Quarta Forma Normal (4FN)...................................................................................................24 Quinta Forma Normal (5FN)...................................................................................................24 Modelo Conceitual..................................................................................................................26 Modelo Lgico........................................................................................................................27 Modelo Fsico.........................................................................................................................28 Sistema de Gerenciamento de Banco de Dados SGBD.....................................................29 Arquitetura de um SGBD........................................................................................................29 Sistemas Centralizados..........................................................................................................30 Sistemas Cliente-Servidor......................................................................................................30 Sistemas cliente-servidor de trs camadas para aplicaes Web.........................................30 Sistemas Paralelos.................................................................................................................30 Sistemas Distribudos.............................................................................................................30

Evoluo dos SGBDs............................................................................................................30 Linguagem de Programao para BD SQL.........................................................................31 Data Definition Language (DDL)............................................................................................31 Data Manipulation Language (DML)......................................................................................31 Data Query Language (DQL)................................................................................................31 Data Control Language (DCL)...............................................................................................31 Comandos SQL.....................................................................................................................32 Criar de Banco de Dados......................................................................................................32 Uso do BD.............................................................................................................................32 Remoo de BD....................................................................................................................32 Criao de Tabelas...............................................................................................................32 Lista dos principais tipos de dados mais comuns.................................................................32 Insero de Registros...........................................................................................................34 Consulta de Registros...........................................................................................................34 Alterao de Registros..........................................................................................................34 Remoo de Registros..........................................................................................................34 Alterao de Tabelas.............................................................................................................35 Operadores Aritmticos.........................................................................................................35 Operadores de Comparao.................................................................................................35 Operadores Lgicos..............................................................................................................36 Operadores Auxiliares...........................................................................................................36 Chave Estrangeira.................................................................................................................36 INDEX....................................................................................................................................37 lgebra Relacional.................................................................................................................37 Referncias............................................................................................................................41

Introduo
Histrico breve sobre banco de dados e conceitos bsicos importantes. A humanidade sempre procurou manter registros histricos dos eventos mais importantes para que pudessem ser utilizados posteriormente. Exemplos: Pinturas em cavernas, inscries hieroglficas, escritas cuneiformes e a imprensa (a partir do sculo XV). Os computadores inventados e aperfeioados a partir do sculo XX permitiram que os dados fossem armazenados e recuperados com grande rapidez e facilidade. No incio da dcada de 70 surgiram os SGBDs (Sistemas de Gerenciamento de Banco de Dados). Pesquisas na rea resultaram em um conjunto de tcnicas, processos e notaes para a modelagem ou projeto de banco de dados. Banco de Dados uma coleo de dados inter-relacionados, representando informaes sobre um domnio especfico (Korth). Um banco de dados um conjunto coerente e lgico de dados relacionados que possuem significncia intrnseca. Esses dados representam aspectos do mundo real e so dispostos em uma ordem predefinida para atender a determinadas necessidades dos usurios. Dado Podemos definir dado como uma seqncia de smbolos quantificados ou quantificveis. Exemplo: texto (as letras so smbolos quantificados). Tambm so dados: fotos, figuras, sons gravados e animao, pois todos podem ser quantificados. Um dado necessariamente uma entidade matemtica e, desta forma, puramente sinttico. Isto significa que os dados podem ser totalmente descritos atravs de representaes formais, estruturais. Sendo ainda quantificados ou quantificveis, eles podem obviamente ser armazenados em um computador e processados por ele. Dados, portanto, so valores fisicamente registrados em um banco de dados. Os dados devem ser integrados e compartilhados: Integrado: visa eliminar a redundncia de dados, ou seja, repetio desnecessria de um dado. Compartilhado: parcelas isoladas de dados podem ser compartilhadas por diversos usurios num BD, inclusive ao mesmo tempo (acesso concorrente)

Informao o significado dos valores dos dados para determinado usurio. Sempre que for possvel agrupar digitalmente informaes que se relacionam e tratam de um mesmo assunto, podemos dizer que temos um BANCO DE DADOS. Exemplo: lista telefnica, catlogo de livros, informaes de alunos, etc.

Um banco de dados uma coleo de dados operacionais armazenados, usados pelos sistemas de aplicaes de uma empresa especfica (Date) Exemplo de empresas: Fbricas; Bancos; Hospitais; Universidades; Departamentos governamentais.

Qualquer empresa deve, necessariamente, manter uma certa quantidade de dados acerca de suas operaes. So estes os dados operacionais. Os dados operacionais das empresas das empresas citadas provavelmente incluiriam o seguinte: Fbricas: dados sobre os produtos; Bancos: dados contbeis; Hospitais: dados sobre os pacientes; Universidades: dados sobre os estudantes; Departamentos governamentais: dados de planejamento. Conhecimento Conhecimento pode ser caracterizado como uma abstrao interior, pessoal, de algo que foi experimentado, vivenciado, por algum. Nesse sentido, o conhecimento no pode ser descrito; o que se descreve a informao. Tambm no depende apenas de uma interpretao pessoal, como a informao, pois requer uma vivncia do objeto do conhecimento. Arquivos Arquivos so usados para reteno de longo prazo de certa quantidade de dados, mesmo aps o trmino da execuo do programa. Um arquivo uma abstrao utilizada para uniformizar a interao entre o ambiente de execuo e os dispositivos externos. Os dados mantidos em arquivos so geralmente chamados de dados persistentes. Os computadores armazenam os arquivos em dispositivos de armazenamento externo. A interao de um programa com um dispositivo atravs de arquivos passa por trs etapas: 1. 2. 3. Abertura ou criao de um arquivo; Transferncia de dados; Fechamento do arquivo.

Problemas encontrados no perodo quando BD no era popular: Antes de surgirem os bancos de dados como conhecemos, os programadores armazenavam os dados em arquivos, manualmente, salvando-os em um local fsico, num determinado diretrio, para posteriormente acess-los ou alter-los conforme a

necessidade. Mas isso gerava problemas como o uso concorrente da mquina na rede, por exemplo. Toda vez que um usurio quiser acessar um arquivo, era preciso ter a chave ou o cdigo que controla o acesso, para no modific-lo quando outro usurio estiver acessando o mesmo arquivo. Isso era implementado pelo programador na hora de desenvolver o software controlador. Existia tambm o problema das gravaes simultneas, como dois programas diferentes gravando informaes diferentes no mesmo arquivo, gerando assim um arquivo corrompido ou inutilizvel.

Desvantagens do sistema de processamento de arquivo: 1. Redundncia de dados e inconsistncia: uma vez que os arquivos e programas so criados por diferentes programadores a mesma informao pode estar duplicada em diversos arquivos (ex. endereo do cliente) Aumenta o custo de armazenamento Possibilita a inconsistncia de dados 2. Dificuldade do acesso a dados exemplo: saber o nome dos clientes com CEP 88040 usualmente no h um programa especfico - teria que manualmente selecionar na lista de clientes - ou solicitar a criao de um programa * no interessante pois novas condies podem surgir no permite retirar dados de maneira eficaz e conveniente 3. Isolamento dos dados dados so espalhados em vrios arquivos de diferentes formatos difcil escrever novos programas para retirada conveniente dos dados 4. Mltiplos usurios pode resultar em dados inconsistente. Exemplo: considere uma conta com R$ 500,00. Se dois clientes fazem um saque ao mesmo tempo (R$ 50,00 e 100,00) pode levar a um saldo inconsistente (450 ou 400) superviso deve ser mantida no sistema 5. Problemas de segurana nem todo usurio deve ser autorizado a acessar todos os dados - caixa deveria acessar dados dos correntistas - departamento pessoal deveria acessar os dados dos funcionrios como os programas so adicionados ao sistema de forma emprica - difcil garantir segurana 6. Problemas de integridade valores armazenados devem satisfazer certos tipos de restries de consistncia - Exemplo: saldo de uma conta nunca deve estar abaixo de um valor prespecificado restries devem ser garantidas pelo sistema

- pode ser conseguida colocando cdigo apropriado nos diversos programas mas quando novas restries so inseridas - fica difcil alterar os programas para garanti-la - mais complicado se restries envolvem diversos dados de diferentes arquivos A soluo ento foi colocar um programa que se chama SGBD (Sistema Gerenciador de Banco de Dados). Esse programa pode ficar tanto numa mquina de um usurio quanto numa rede e se encarrega de gerenciar um banco de dados. Hardware O hardware de um sistema de banco de dados compe-se dos volumes de memria secundria - disco rgido nos quais reside o banco de dados, juntamente com dispositivos de entrada de dados e sada de informaes. Software O software que compe o sistema de Banco de Dados o Sistema Gerenciador de Banco de Dados (SGBD). Exemplo: MySQL, SQLServer, Oracle, DB2, etc. O Sistema Gerenciador de Banco de Dados SGBD foi desenvolvido para facilitar o acesso dos usurios ao Banco de Dados, permitindo a manipulao dos dados (incluso de dados, alterao, recuperao e excluso). Abstrao de dados Os objetivos de um sistema de banco de dados so o de isolar o usurio dos detalhes internos do banco de dados (promover a abstrao de dados) e promover a independncia dos dados em relao s aplicaes, ou seja, tornar independente da aplicao, a estratgia de acesso e a forma de armazenamento. Sistema de Gerenciamento de BD BD = Coleo de arquivos inter-relacionados SGBD = Programas permitindo acessar e manipular arquivos

Propsito central do sistema Ser eficiente - leva a concepo de estruturas de dados complexas para representar os dados no BD Fornecer uma viso abstrata dos dados - escondendo detalhes de como dados so armazenados e mantidos O sistema de banco de dados deve garantir uma viso totalmente abstrata do banco de dados para o usurio, ou seja, para o usurio do banco de dados pouco importa qual unidade de armazenamento est sendo usada para guardar seus dados, contanto que os mesmos estejam disponveis no momento necessrio. Esta abstrao se d em trs nveis: Nvel de viso do usurio, Nvel conceitual e Nvel fsico.

Nvel de viso do usurio: as partes do banco de dados que o usurio tem acesso de acordo com a necessidade individual de cada usurio ou grupo de usurios. Exemplo: caixa de um banco - pode somente ver parte do BD que possui a informao acerca dos clientes do banco. Nvel conceitual: define quais os dados que esto armazenados e qual o relacionamento entre eles. - nvel intermedirio de abstrao - descreve quais dados so armazenados no BD e quais relacionamentos existem entre os dados - descreve inteiramente o BD com um pequeno nmero de estruturas relativamente simples (que podem refletir em estruturas complexas no nvel fsico) - usados pelos administradores do banco de dados (que devem decidir qual informao deve ser mantida no BD) Nvel fsico: o nvel mais baixo de abstrao, em que define efetivamente de que maneira os dados esto armazenados. Exemplo: Cliente Nome: String Idade: Interger Rua: String Cidade: String

Modelos de BD Modelo Hierrquico Modelo de Redes Modelo Relacional Modelo de Entidade e Relacionamento

Modelo Hierrquico (HDS Hierarquical Database System) Surgiu na dcada de 1960 com a primeira linguagem de banco de dados: a DL/I desenvolvida pela IBM e a North American Aviation. Organiza os dados de cima para baixo, como uma rvore. Cada registro dividido em partes denominadas segmentos. O banco de dados se assemelha a um organograma com um segmento raiz e um nmero qualquer de segmentos subordinados. Os segmentos so arranjados em estruturas com um segmento superior ligado a um segmento subordinado em um relacionamento pai-filho. Um segmento pai pode ter mais de um filho, mas um segmento filho s pode ter um pai. A desvantagem apresentada rigidez da estrutura de dados, que obriga refazer todo o banco de dados, caso o seguimento raiz ou os seguimentos que possuem dependentes sejam alterados. O sistema comercial mais divulgado do modelo hierrquico foi o IMS (Information Management System) da IBM Corporation. Este modelo utiliza rvores para a representao lgica dos dados. Esta rvore esta composta de uns elementos chamados ns. O nvel mais alto da rvore denomina-se raiz. Cada n representa um registro com seus correspondentes campos.

Modelo mais usado at meados dos anos 80 Coleo de registros conectados por meio de ligaes Cada registro uma coleo de campos Cada campo contm um s valor Cada ligao liga exatamente 2 registros Modelo de Redes (NDS - Network Database System) Definidos pelo DBTG (DataBase Task Group) do comit do CODASYL (Conference on Data Systems Language) a partir de 1971. Esse modelo uma extenso do modelo hierrquico. Os registros so organizados no banco de dados por um conjunto arbitrrio de grficos. Em outras palavras, um filho pode ter mais de um pai. Esta metodologia torna a pesquisa mais rpida e mais flexvel, pois no depende de um nico n raiz como vetor de inicializao de pesquisa. Entretanto, o modelo em rede ainda apresenta os mesmos problemas com relao ao projeto de estrutura do modelo hierrquico. Qualquer alterao feita em uma classe de dados implica na criao de uma nova estrutura para suportar aquela alterao. No modelo em rede um dos sistemas mais conhecidos o CA IDMS da Computer Associates. A ANSI (American National Standards Institute) apresentou uma proposta de padronizao de uma linguagem de definio de redes (NDL) em 1984. Caractersticas

os dados so organizados em vrios tipos de registros e tipos de SETs (estabelecem os relacionamentos) maior simetria nas consultas problema de estratgia de acesso aos registros filhos

Neste modelo as entidades se representam como ns e suas relaes so as linhas que os unem. Nesta estrutura qualquer componente pode se relacionar com qualquer outro. Diferentemente do modelo hierrquico, neste modelo, um filho pode ter vrios pais. Modelo Relacional Os fundamentos de bancos de dados relacionais surgiram na empresa IBM, nas dcadas de 1960 e 1970, atravs de pesquisas de funes de automao de escritrio. Nessa poca, as empresas tinham um custo muito elevado com um grande nmero de pessoal para a manuteno de arquivos e documentos em geral. Edgar Frank Codd, matemtica britnico, desenvolveu o modelo de banco de dados relacional, quando era pesquisador no laboratrio da IBM em San Jos. Em junho de 1970 publicou um artigo chamado "Relational Model of Data for Large Shared Data Banks" ("Modelo de dados relacional para grandes bancos de dados compartilhados") que foi publicado na Revista ACM - Association for Computing Machinery. o modelo cujos dados esto armazenados em tabelas (ou entidades). Utilizado para gerncia de dados, em um banco de dados, o modelo relacional est baseado na lgica e na teoria dos conjuntos, conforme as entidades e suas relaes. Entidades Entidades so representaes de coisas do mundo do usurio que podem ser facilmente identificadas e classificadas. Estas coisas podem ser concretas ou abstratas, por exemplo: podemos ter entidades concretas como carro, avio, cliente, fornecedor, e abstratas, como santos, deuses, cores, etc. Uma entidade representada por um retngulo que contm, no seu interior, o seu nome escrito no singular. Exemplo: Cliente Livro Municipio Fornecedor

Entidade fraca e Entidade Forte a entidade que depende obrigatoriamente de outra para existir. Para que exista uma entidade fraca, ela dever obrigatoriamente estar conectada (ou associada) a uma entidade Pai (entidade forte). Por exemplo, a entidade Funcionario uma entidade forte e a entidade

10

Dependente uma entidade fraca, pois depende diretamente da entidade pai, e por isso devem estar ligadas, relacionadas. Atributos So itens que nos permitem caracterizar e identificar as entidades. Exemplo: no caso da entidade Cliente, os atributos podem ser Nome, Codigo, CPF, RG, Endereco, etc. estes atributos so nicos para a entidade Cliente porque classificam apenas essa entidade. Assim sendo, mesmo que existam atributos de outras entidades com nomes iguais (caso isso ocorra) eles tem propsitos diferentes, pois cada um classifica apenas a entidade a que est inserido. Tipos de Atributo O atributo pode ser: monovalorado, multivalorado, composto, derivado e agregado. Monovalorado Os atributos das entidades identificadas como monovalorados possuem apenas valores simples e atmicos. So campos que recebem apenas um valor especfico. Exemplo: CPF, Nome e Peso, na entidade Cliente. Multivalorado So os atributos que recebem mais de um valor para suas ocorrncias na respectiva entidade. Eles podem ocorrer nos relacionamentos tambm. Por exemplo, o campo telefone pode ser considerado multivalorado pois podem ocorrer diversos valores como: telefone de casa, telefone do trabalho e celular. Assim como email. O ideal criar outra entidade fraca do tipo Telefone e associar (relacionar) com a entidade forte (pai) Cliente, por exemplo. Composto So atributos formados pela fuso de vrios atributos. O exemplo mais tpico endereo, pois este atributo pode ser formado pelos atributos Rua, CEP, Numero, Bairro, etc. Derivado atributo criado para receber o resultado do armazenamento de vrias operaes sobre outros atributos. Ele pode receber valores de outros campos. As operaes em pelo menos dois campos podem gerar um campo calculado. Exemplo: Salario_liquido = Salario_bruto Descontos Agregado So atributos gerados geralmente em operaes ou comparaes com outros atributos que no pertencem entidade que est sendo tratada, ou seja, os campos usados nas comparaes ou clculos vm de outras entidades. Isto geralmente pode ocorrer quando voc deseja realizar um Total Geral em um relatrio ou formulrio e deve usar atributos de diversas entidades na composio da frmula. Nomenclatura de Tabelas e de Campos Os sistemas gerenciadores de bancos de dados geralmente impem certas restries quanto aos caracteres vlidos para denominar tabelas, campos (colunas), bem como outros objetos do banco de dados. Observe a seguir o que deve ser evitado: No utilizar caracteres especiais (exceto o underscore _); Comear com uma letra e no com um nmero; Evitar acentuao e ; No utilizar espaos.

11

Sabendo que o DER e os modelos relacionais so a representao dos dados a serem implementados num SGBD determinado, bom admitir as mesmas restries elecandas acima para as nomeaes das entidades e dos atributos. Diagrama Entidade-Relacionamento (DER) O Diagrama Entidade-Relacionamento descreve o modelo de dados de um sistema com alto nvel de abstrao. Ele a principal representao do Modelo de Entidades e Relacionamentos. Relacionamentos O relacionamento a ligao (associao) entre entidades. No DER ele representado, na maioria das vezes, por um losango entre as entidades com uma palavra em seu interior. A palavra deve ser um verbo. Sobre o losango opcionalmente est uma seta que representa a direo de leitura da informao representada. O relacionamento pode ter atributos prprios. O relacionamento representa regras de negcio, por exemplo: Um funcionrio tem dependente. No exemplo abaixo a entidade Dependente uma entidade fraca:

J no exemplo abaixo a entidade Funcionario uma entidade fraca, pois est ligada a entidade forte, Departamento:

Natureza Os tipos de relacionamento podem ser classificados quanto sua natureza como sendo opcional ou obrigatrio. Por exemplo: um departamento tem obrigatoriamente pelo menos um funcionrio. Ou seja, no existem departamentos sem funcionrios. Exemplo:

Cardinalidade Cardinalidade a indicao da quantidade de ocorrncias possveis para cada uma das entidades no relacionamento. O lado (nmero) 1 indica apenas uma ocorrncia, e o lado N (letra ou M) indica vrias ocorrncias. Esta simbologia representada nas laterais dos retngulos ou nas laterais das entidades. Exemplo de Cardinalidade: a) 1:N

12

O lado A possui uma ocorrncia (ou pelo menos uma) que se relaciona com uma ou vrias (pelo menos uma, ou mais) ocorrncia do lado B.

b) N:M H Mltiplas ocorrncias em ambos os lados. O lado A possui uma ou mais ocorrncias que se relaciona com uma ou mais ocorrncias do lado B.

c) 1:1 O lado A possui apenas uma ocorrncia que se relaciona com apenas uma ocorrncia do lado B. Apenas uma ocorrncia de uma lado pode ou no se relacionar com apenas um lado.

Tipos de associaes Grau Os diagramas entidade-relacionamento podem descrever relacionamentos binrios, ternrios ou mesmo e-nrio, de acordo com o nmero de entidades envolvidas numa associao. Um relacionamento binrio acontece entre duas entidades, que o fato mais comum de acontecer no mundo real. Podemos ter tambm um relacionamento binrio recursivo, construdo por meio de conexes com a mesma entidade, acontecendo como se fossem duas coisas diferentes se relacionando em nossa abstrao, duas ocorrncias da entidade se relacionando, se associando. De um relacionamento ternrio participam trs entidades no mesmo fato. Um relacionamento e-nrio aquele do qual participam mltiplas entidades (acima de trs). Opcionalidade (Natureza) Os relacionamentos podem apresentar uma caracterstica denominada opcionalidade, que significa que determinada ocorrncia em uma entidade pode no ter correspondncia na outra entidade que participa da associao. Exemplo:

13

Mtua Exclusividade Os relacionamentos, dependendo da definio do negcio, podem ser tratados como mutuamente exclusivos ou inclusivos. Exemplo: a) Associaes Mutuamente Exclusivas

b) Associaes Mutuamente Inclusivas

Redundncia Um relacionamento considerado redundante quando todas as informaes que ele descreve podem ser obtidas ou deduzidas de outros relacionamentos. Exemplo:

Auto-Relacionamento

14

Uma entidade, normalmente por motivo de agregao ou hierarquia, pode apresentar uma associao consigo mesma. Quando isso ocorre, denomina-se o relacionamento como autorelacionamento. Tambm pode ser conhecido como relacionamento reflexivo ou relacionamento recursivo. Exemplo:

Obs.: Embora a figura esteja mostrando um relacionamento com cardinalidade um-paramuitos, seria perfeitamente possvel pensar em auto-relacionamento com qualquer outro tipo de cardinalidade. Importa saber, efetivamente, que auto-relacionamentos acontecem entre ocorrncias de uma mesma entidade. Paralelismo Normalmente, existe uma razo relevante para que uma entidade se ligue a outra. Todavia, pode haver mais de uma razo para associar duas entidades. Exemplo:

Exemplo de Diagrama

Exemplo: Uma turma composta por zero ou mais alunos; o aluno frequenta uma ou mais turmas.

Exemplo de Notaes Diferentes


Descrio Notao de Peter Chen Grfico de bolhas Notao P-de-galinha

15

1:1 Um A associado um B

1:N Um A associado a um ou vrios B 1:1 Um B associada a zero ou um B

1:N Um A associado a zero, um ou vrios B

N:M - Vrios A associado a vrios B

Integridade De Dados Impor a integridade de dados garante a qualidade dos dados em um banco de dados. Os dados devem refletir corretamente a realidade representada pelo banco e tambm devem ser consistentes entre si. Integridade De Domnio Zela pelos valores ideais e necessrios para um atributo. Para isso definimos algumas regras de validao por meio de expresses compostas de valores constantes. Exemplos: No permitir um estoque negativo Impedir uma data de nascimento superior data atual No permitir que o valor de um produto seja negativo Integridade De Entidade Tem o objetivo de validar os valores permitidos a partir de valores j inseridos na prpria entidade. Aps uma auto-consulta a entidade vai permitir ou no a gravao do novo registro. Exemplos: No permitir duas pessoas com o mesmo CPF Impedir a locao de uma fita que esteja locada Integridade Referencial Zela pela consistncia dos registros de uma entidade a partir de valores provenientes de outras entidades, isto , determinado registro vai depender diretamente de um registro de outra tabela. Exemplos: Um registro em uma tabela pai pode ter um ou mais registros em uma tabela filho. Um registro em uma tabela filho sempre tem um registro coincidente em uma tabela pai. Para a incluso de um registro em uma determinada tabela filho, necessrio que exista um registro pai coincidente. Um registro pai s poder ser excludo se no possuir nenhum registro filho. Constraints (Restries)

16

Observe a seguir as principais constraints ou restries utilizadas nos bancos de dados relacionais, principalmente durante o processo de criao das tabelas, para implementar os tipos de integridade anteriormente descritos:

Propriedades das relaes segundo Date (1986): 1. No h tuplas duplicadas; 2. As tuplas no seguem um ordenamento (de cima para baixo); 3. Os atributos no seguem um ordenamento (da esquerda para a direita); 4. Todos os valores de atributo so atmicos (existem de fato ou no). Tabela Estrutura bi-dimensional composta por linhas (tuplas) e campos (ou atributos).

Tipos De Dados Durante a criao das tabelas do banco de dados necessrio informar que tipo de dados cada coluna dever armazenar. A tabela a seguir apresenta alguns tipos de dados compatveis com o Oracle, um dos principais sistemas de gerenciamento de banco de dados atualmente utilizado: Tipo Armazena

Chave Primria (Primary key)

17

Atributo atravs do qual seja possvel identificar determinado registro. Aponta para os dados existentes em uma determinada tupla. O campo que chave primria da tabela no pode receber valores repetidos e no pode ser nulo (NULL). Chave primria simples: apenas um atributo (campo) compe a chave primria. Chave primria composta: mais de um atributo compe a chave primria.

Chave nica (Unique) Utilizada quando determinado campo no deve ser repetido e no chave primria. Aumenta a consistncia do banco de dados. Exemplo: Cadastro de funcionrios. Cada funcionrio recebe um cdigo nico, que a chave primria. Para maior segurana e consistncia podemos optar que o campo CPF tambm seja nico, evitando que o mesmo funcionrio seja cadastrado duas vezes.

Chave Estrangeira (FK Foreign Key) Utilizada quando queremos que o valor de um atributo seja validado a partir do valor de atributo de outra tabela. Criamos assim uma relao de dependncia (um relacionamento) entre as tabelas. Exemplo: Antes de efetuar a alocao de um funcionrio em um departamento, necessrio que o departamento em questo conste na tabela de departamentos.

Modelo Entidade-Relacionamento (MER) O Modelo Entidade-Relacionamento foi definido por Peter Pin=Shan Chen, em 1976, e baseia-se na percepo do mundo real como constitudo por um conjunto de objetos bsicos chamados entidades e relacionamentos e define uma tcnica de diagramao para modelos de dados, que o diagrama de entidades e relacionamento (DER). A utilizao da abordagem correta de uma metodologia orientada a banco de dados envolve a estruturao nos trs nveis de viso de dados (Nvel da viso do usurio, Nvel conceitual e Nvel fsico). So trs etapas na execuo de um projeto de banco de dados: 1. Modelo Conceitual;

18

2. Modelo Lgico; e 3. Modelo Fsico. Cada empresa possui uma realidade especfica, mesmo quando se trata de ambientes de mesma natureza. Existem particularidades que s dizem respeito ao funcionamento de um determinado ambiente. Devido a essa no-similaridade entre ambientes de mesma natureza, ser sempre necessria a criao de um modelo especfico para cada nova realidade observada. Fica bem claro, ento, a necessidade de termos um modelo que permita construir vrios outros modelos, o qual chamado de metamodelo. O metamodelo a ser utilizado deve ter a caracterstica de poder modelar qualquer realidade, uma forma de trabalho bastante simples e caractersticas grficas fceis de construir e entender. O metamodelo a que nos referimos o DER (Diagrama EntidadeRelacionamento), apresentado nesta apostila. A estrutura lgica global de um banco de dados pode ser expressa graficamente por um diagrama de entidades (representados por retngulos), por relacionamentos (representados por losangos) e pelos atributos de cada entidade ou relacionamento atravs de elipses (conforme notao de Peter Chen). Exemplo:

Normalizao O objetivo da normalizao evitar os problemas que podem provocar falhas no projeto do banco de dados, bem como eliminar a mistura de assuntos e as correspondentes redundncias desnecessrias de dados. Uma regra que devemos observar quando do projeto de um banco de dados orientado para o modelo relacional no misturar assuntos em uma mesma tabela. O processo de normalizao aplica uma srie de regras sobre as tabelas de um banco de dados, para verificar se esto corretamente projetadas. Embora exista um conjunto de cinco formas normais (ou regras de normalizao), na prtica usamos desse conjunto efetivamente trs formas normais. As tabelas (entidades) de um banco de dados relacional so derivadas de um modelo Entidade-Relacionamento (MER), e muitas vezes nessa derivao temos muitos problemas de performance, integridade e manuteno de dados. Normalmente aps a aplicao das formas normais, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um nmero maior de tabelas do que o originalmente existente.

19

Esse processo causa a simplificao dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manuteno. Primeira Forma Normal (1FN) Uma tabela de dados relacional, no deve ter colunas repetidas, pois cada coluna tem exatamente uma definio na tabela. Uma tabela, portanto, est na primeira forma normal se e somente se todas as colunas possuem um nico valor, e no existem grupos repetitivos (colunas) em uma linha ou atributos compostos. A primeira forma normal no permite a existncia de atributos multivalorados ou compostos. Uma relao est na primeira forma normal se tem apenas atributos com valores atmicos (indivisveis). Exemplo: Considere a tabela cliente abaixo: Cliente Codigo_cliente Nome Telefone Endereco Agora a tabela com os dados:

Tabela desnormalizada, ou seja, no est na 1 forma normal Analisando teremos: Todos os clientes possuem Rua, CEP e Bairro, e essas informaes esto na mesma clula da tabela, logo ela no est na primeira forma normal. Para normalizar, deveremos colocar cada informao em uma coluna diferente, como no exemplo a seguir:

Tabela ainda no est na primeira forma normal Mesmo com o ajuste acima, a tabela ainda no est na primeira forma normal, pois h clientes com mais de um telefone e os valores esto em uma mesma clula. Para normalizar ser necessrio criar uma nova tabela para armazenar os nmeros dos telefones e o campo-chave da tabela cliente. Veja o resultado a seguir:

20

Tabela na primeira forma normal

Tabela na 1 forma normal No exemplo acima foi gerado uma segunda entidade para que a primeira forma normal fosse satisfeita, contudo possvel manter a tabela original, admitindo-se valores duplos em uma mesma coluna, como exemplo o campo telefone ficaria assim: 11-3400-3563 e 193500-9650. Neste caso a tabela ficaria desnormalizada, mas muitos acabam preferindo assim, principalmente quando h poucos casos de repetio. Segunda Forma Normal (2FN) Consiste em retirarmos das estruturas de dados que possuem chaves compostas (chave primria formada por mais de um campo), todos os dados que so funcionalmente dependentes de somente alguma parte dessa chave. Podemos afirmar que uma estrutura est na 2FN, se ela estiver na 1FN e todo atributo nochave plenamente dependente da chave primria. A resoluo da aplicao da segunda forma normal realizada atravs da excluso dos atributos que no dependem totalmente da chave primria, da tabela original, e constituindose com estes uma nova tabela, que ter como chave primria o atributo participante da chave primria da tabela origem. Exemplo: Considere a tabela vendas abaixo: Vendas N_pedido Cdigo_produto Produto Quant Valor_unit Subtotal Agora a tabela com os dados:

Tabela no est na segunda forma normal Analisando teremos:

21

O nome do produto depende do cdigo do produto, porm no depende de N_pedido que a chave primria da tabela, portanto no est na segunda forma normal. Isto gera problemas com a manuteno dos dados, pois se houver alterao no nome do produto teremos que alterar em todos os registros da tabela venda. Para normalizar esta tabela teremos de criar a tabela Produto que ficar com os atributos Cdigo_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, cdigo_produto, quant, valor_unit e subtotal. Veja o resultado abaixo:

Tabela na segunda forma normal

Tabela na 2 forma normal Conforme visto na Primeira forma normal, quando aplicamos normalizao comum gerar novas tabelas a fim de satisfazer as formas normais que esto sendo aplicadas. Quando um atributo ou conjunto de atributos A de uma tabela depende de outro atributo B, que no pertence chave primria, mas dependente funcional deste, dizemos que A dependente transitivo de B. As dependncias funcionais podem existir para atributos que no so chaves em uma tabela. Este fato denominamos de dependncia funcional transitiva. Terceira Forma Normal (3FN) A terceira forma normal determina que no devem existir atributos com dependncia funcional transitiva em uma tabela, pois podem provocar da mesma forma anomalias de incluso, manuteno e deleo. A aplicao da terceira forma normal consiste em retirar das estruturas os campos que so funcionalmente dependentes de outros campos que no so chaves. Podemos afirmar que uma estrutura est na terceira forma normal se ela estiver na segunda forma normal e no possuir campos dependentes de outros campos no chaves. Exemplo1: Tabela Notas fiscais
NumNF 456123 859032 859631 Serie nica nica nica Data_Emisao 20/02/2004 20/02/2004 20/02/2004 Cod_Cli 1 2 3 Nome_cliente Luis Sampaio Carlos Pereira Jos Alves Endereco R. Silva S 23/11 R. Dias 334/12 Melhores CNPJ 01.253.523/0001 -85 32.253.501/0001 -12 05.333.510/0001 -08 Valor 600,00 1.800,00 1.600,00

Av. Arapans 4487/1915

Tabela no est na terceira forma normal Observa-se que na tabela de notas fiscais os dados Nome_cliente, Endereo e CNPJ dependem funcionalmente da coluna Cod_Cli, a qual no faz parte da chave primria desta tabela, logo tm dependncia funcional transitiva.

22

Soluo: Cliente
Cod_Cli 1 2 3 Nome_cliente Luis Sampaio Carlos Pereira Jos Alves Endereco R. Silva S 23/11 R. Dias 334/12 Av. 4487/1915 Melhores Arapans CNPJ 01.253.523/000185 32.253.501/000112 05.333.510/000108

Tabela na terceira forma normal Nota Fiscal


NumNF 456123 859032 859631 Serie nica nica nica Data_Emisao 20/02/2004 20/02/2004 20/02/2004 Cod_Cli 1 2 3 CNPJ 01.253.523/000185 32.253.501/000112 05.333.510/000108 Valor 600,00 1.800,00 1.600,00

Tabela na terceira forma normal Estas colunas so ento retiradas e vo constituir uma nova tabela levando como chave primria o atributo do qual possuam dependncia transitiva. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equao de outros campos da mesma tabela. Considere a tabela abaixo:

Tabela no est na terceira forma normal Considerando ainda a nossa tabela Venda, veremos que a mesma no est na terceira forma normal, pois o subtotal o resultado da multiplicao Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas no-chave. Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir:

Tabela na terceira forma normal Quarta Forma Normal (4FN) Na grande maioria dos casos, as entidades normalizadas at a 3FN so fceis de entender, atualizar e recuperar dados. Mas s vezes podem surgir problemas com relao a algum atributo no chave, que recebe valores mltiplos para um mesmo valor de chave. Essa nova

23

dependncia recebe o nome de multivalorada que existe somente se a entidade contiver no mnimo trs atributos. Uma entidade que esteja na 3FN tambm est na 4FN, se ela no contiver mais do que um fato multivalorado a respeito da entidade descrita. Essa dependncia no o mesmo que uma associao N:M entre atributos, geralmente descrita desta forma em algumas literaturas, mas ocorre quando consideramos a existncia de relacionamentos, por exemplo, ternrios. Exemplo: Vamos imaginar o contedo desta tabela compra:
CodFornecedor 101 102 530 CodProduto BA3 CJ10 BA3 CodComprad or 1 5 1

Como podemos observar, esta entidade tenta conter dois fatos multivalorados: os diversos produtos comprados e os diversos produtos fornecidos. Com isso apresenta uma dependncia multivalorada entre CodFornecedor e o CodProduto e entre CodFornecedor e o CodProduto. Para passarmos a referida tabela para a 4FN, necessria a realizao de uma diviso da entidade original, em duas outras, ambas herdando a chave CodProduto.
CodFornecedor 101 102 530 CodProduto BA3 CJ10 BA3 CodProduto BA3 CJ10 BA3 CodComprador 1 5 1

Quinta Forma Normal (5FN) A definio da 5FN diz que: uma tabela de 4FN estar em 5FN, quando seu contedo no puder ser reconstrudo (existir perda de informao) a partir das diversas tabelas menores que no possuam a mesma chave primria. Essa forma normal trata especificamente dos casos de perda de informao, quando da decomposio de relacionamentos mltiplos. Com a 5FN algumas redundncias devem ser retiradas. A ocorrncia deste tipo de forma normal est vinculada aos relacionamentos mltiplos (ternrios, etc.) ou entidades que possuam chave primria concatenada com trs ou mais atributos. O processo de normalizao leva ao refinamento das entidades, retirando delas grande parte das redundncias e inconsistncias. Naturalmente, para que haja uma associao entre entidades, preciso que ocorram redundncias mnimas de atributos que evidenciam esses relacionamentos. Sem essas redundncias no haveria relacionamento entre entidades. Consideraes finais sobre Normalizao Podemos observar que as formas normais nada mais so do que restries de integridade, e medida que se alimenta este grau de normalizao, tornam-se cada

24

vez mais restritivas. Dependendo do SGBD relacional utilizado, essas restries podem se tornar benficas ou no; A forma de atuao da normalizao no ciclo de vida de um projeto de bases de dados pode ser mais satisfatria no desenvolvimento de modelos preliminares, a partir da normalizao da documentao existente no ambiente analisado, bem como de arquivos utilizados em alguns processos automatizados neste ambiente; No caso do desenvolvimento top-dowm, no qual um modelo de dados criado a partir da visualizao da realidade, a normalizao serve para realizar um aprimoramento desse modelo, tornando-o menos redundante e inconsistente. No caso desta viso, a normalizao torna-se um poderoso aliado da implementao Fsica do modelo. Por experincia, podemos afirmar que a construo de um modelo de dados j leva naturalmente ao desenvolvimento de entidades e relacionamento na 3FN, ficando as demais (4FN e 5FN) para melhorias e otimizaes. Modelagem De Dados - Modelo Entidade-Relacionamento (MER) a atividade de especificao das estruturas de dados e regras de negcio necessrias para suportar uma rea de negcios. (Wikipdia). A modelagem de dados uma tcnica usada para a especificao das regras de negcio e as estruturas de dados de um banco de dados. Faz parte do processo de desenvolvimento de um sistema de informao, e importante para definio da estrutura do banco de dados desse sistema. Modelar dados consiste em desenhar o sistema de informaes, definindo as entidades, as chaves existentes, os relacionamentos e suas regras, os atributos e os respectivos tipos de dados e as restries, devidamente normalizados, de acordo com as regras de negcio analisadas. A modelagem de dados abrange trs etapas, que so, na verdade, os trs nveis de vises de abstrao de dados: o Modelo Conceitual, o Modelo Lgico e o Modelo Fsico. As principais contribuies no uso da tcnica de modelagem de dados so: Facilita a compreenso do negcio, alm de detectar inconsistncias e lacunas do suporte prestado pelos sistemas aos processos do negcio; Estabelece um consenso sobre os conceitos dos objetos do negcio e na terminologia aplicada aos mesmos; Auxilia na determinao do escopo de um sistema e de seus pontos de interface a outros sistemas; Auxilia na previso de esforo prazo e custo com base no modelo de dados; Serve como importante veculo de comunicao junto s pessoas tcnicas e no tcnicas devido a sua estruturao de fcil leitura e compreenso; Auxilia na manuteno dos sistemas de informao. Modelo Conceitual Os objetos e fenmenos reais, no entanto, so complexos demais para permitir uma representao completa, considerando os recursos disposio dos sistemas gerenciadores de bancos de dados (SGBD) atuais. Desta forma, necessrio construir uma abstrao dos objetos e fenmenos do mundo real, de modo a obter uma forma de representao conveniente, embora simplificada, que seja adequada s finalidades das aplicaes do banco de dados.

25

Representa as regras de negcio sem limitaes tecnolgicas ou de implementao, por isto a etapa mais adequada para o envolvimento do usurio que no precisa ter conhecimentos tcnicos. O diagrama utilizado nessa etapa o DER. Neste modelo temos : Viso Geral do negcio (Representao dos conceitos e caractersticas observados no ambiente) Facilitao do entendimento entre usurios e desenvolvedores Possui somente as entidades e atributos principais Pode conter relacionamentos n para m. Ao contrrio do senso do mercado, as caractersticas de um bom modelador no esto fundamentadas na capacidade de programao ou no domnio de um SGBD comercial, mas na sua capacidade de pensamento abstrato, de traduo e inter-relacionamento de mltiplos conceitos de um negcio, de comunicao clara e investigao aguada. O sucesso de qualquer implementao em computador de um sistema de informao dependente da qualidade da transposio de entidades do mundo real e suas interaes para um banco de dados informatizado. A abstrao funciona como uma ferramenta que nos ajuda a compreender o sistema, dividindo-o em componentes separados. Como Encontrar Conceitos e Atributos? Verificar o texto dos casos de uso expandidos Selecionar termos que representam informao transmitida do e para o sistema Agrupar sinnimos Exemplo: Caso de Uso: Emprestar Fitas Fluxo Principal: 1. O cliente chega ao balco com as fitas que deseja locar; 2. O cliente informa seu nome e entrega as fitas ao funcionrio; 3. O funcionrio registra o nome do cliente e inicia a locao; 4. O funcionrio registra cada uma das fitas; 5. O funcionrio finaliza a locao, devolve as fitas ao cliente e lhe informa a data de devoluo e o valor total da locao; 6. O cliente vai embora com as fitas. Tratamento de Excees: 3a. O cliente no possui cadastro. 3a.1 O cliente deve informar seus dados para cadastro. 3a.2 O funcionrio registra o cadastro. 3a.3 Retorna ao fluxo principal no passo 3. ...............................................................//............................................................................ 3b. O cliente possui pendncias no cadastro (locao anterior no foi paga). 3b.1 O cliente paga seu dbito. 3b.2 O funcionrio registra a quitao do dbito, eliminando assim a pendncia. 3b.3 Retorna ao passo 3.

26

...............................................................//............................................................................ 4a. Uma fita est reservada para outro cliente. 4a.1 O funcionrio informa que a fita no est disponvel para locao. 4a.2 Prossegue a locao do passo 4 sem incluir a fita reservada. ...............................................................//............................................................................ 4b. Uma fita est danificada. 4b.1 O funcionrio informa que a fita est danificada. 4b.2 O funcionrio registra que a fita est danificada. 4b.2 O funcionrio verifica se existe outra fita disponvel com o mesmo filme. 4b.3 Se existir, o funcionrio substitui a fita e sem incluir a fita danificada. segue no passo 4, seno segue do passo 4

DER

Modelo Lgico O Modelo Lgico leva em conta os limites impostos por algum tipo de tecnologia de banco de dados. (banco de dados hierrquico , banco de dados relacional ,etc.). Suas caractersticas so :

Deriva do modelo conceitual e via a representao do negcio Possui entidades associativas em lugar de relacionamentos n:m Define as chaves primrias das entidades Normalizao at a 3a. forma normal (pelo menos) Adequao ao padro de nomenclatura Entidades e atributos documentados

Exemplo: Modelo Lgico do exemplo anterior.

27

Modelo Fsico Leva-se em conta as limitaes impostas pelo SGBD escolhido e deve ser criado sempre com base nos exemplos de modelagem de dados produzidos no item anterior, modelo lgico. Exemplo: Modelo fsico do exemplo anterior.

Sistema de Gerenciamento de Banco de Dados SGBD

28

O Sistema de Gerenciamento de Banco de Dados um software que permite construir e manipular um BD. Por que usar um SGBD? Controlar redundncia Compartilhamento de dados Independncia de dados Segurana Backup e recuperao falhas Forar restries de integridade Aumentar a produtividade e disponibilidade Flexibilidade, padronizao. Arquitetura de um SGBD Interface de alto nvel de abstrao que prov: consultas, manipulao de dados, definio de dados, geradores de relatrios, e Linguagem de gerao; Tradutor/otimizador de consultas; Vises do usurio de BD; Controle de concorrncia (sincronizao de acessos simultneos ao BD); Controle de integridade (validao de restries de integridade); Controle de segurana (autorizao de acesso aos dados); Controle de recuperao (torna o SGBD tolerante falhas); Eficiente sistema de arquivos com tcnicas de indexao eficientes que permitem armazenar e manipular os dados do BD. Sistemas Centralizados Sistemas centralizados so aqueles executados em grandes computadores centrais (mainframes). Os programas de aplicao e os de interface com os usurios, bem como as funcionalidades do SGBD (Sistema Gerenciador de Banco de Dados) so todos processados no sistema central. Os usurios acessam o sistema central via terminais, sem poder de processamento, atravs de uma rede de comunicao. Sistemas Cliente-Servidor A estrutura fundamental dos sistemas cliente-servidor consiste de estaes de trabalho (normalmente PCs) conectadas via rede aos servidores que tm funcionalidades especficas: servidor de arquivo, de impresso, web, SGBD, etc. As mquinas clientes (estaes de trabalho) oferecem aos usurios as interfaces apropriadas para utilizar os servidores, bem como poder de processamento para executar aplicaes locais.

29

Sistemas cliente-servidor de trs camadas para aplicaes Web Possui uma camada intermediria entre o cliente e o servidor de banco de dados. Essa camada intermediria chamada de servidor de aplicaes ou servidor web e pode armazenar regras de negcio (procedimentos ou restries) que so usadas para acessar os dados no servidor de banco de dados. Sistemas Paralelos Suprem a demanda de aplicaes que geram consultas em bancos de dados muito grandes ou que tenham de processar uma quantidade enorme de transaes por segundo. Sistemas paralelos imprimem velocidade ao processamento e I/O (input/output) por meio do uso em paralelo de diversas CPUs e discos. H diversos modelos arquitetnicos: memria compartilhada, disco compartilhado, etc. Sistemas Distribudos Em um sistema distribudo o banco de dados armazenado em diversos computadores. Os computadores comunicam-se uns com os outros por intermdio de redes de alta velocidade ou linhas telefnicas. Eles no compartilham memria principal ou discos. Os computadores em um sistema de banco de dados distribudos podem variar, quanto ao tamanho e funes, desde estaes de trabalho at sistemas de grande porte (mainframes). Evoluo dos SGBDs At 1960: Sistema de Arquivos integrados. Ex.: ISAM, VSAM; Final de 1960: Modelo Hierrquico. Ex.: IMS(IBM); 1970 & incio de 1980: Modelo de Redes (CODASYL) Ex. : IDMS, DMS-II(Unisys); Meados de 1980: Modelo Relacional (Codd) Ex.: DB-2, SQL-DS (IBM), Oracle, MySQL, Ingres; Final de 1980: Modelo Orientado a Objetos e Relacional Estendido (ObjetoRelacional) Ex.: BDOO: Vbase, O2, Orion, Gemstone, Jasmine, ObjectStore; BD Objeto-Relacional BDOR: Postgres, Informix, Oracle 9i, MySQLi, IBM DB2; 1990: BD Inteligentes e Cliente-Servidor, BD e Web, BD multimdia, BD Espacial, Ativo, Temporal, Dedutivo. Linguagem de Programao para BD SQL SQL (Structured Query Language) um conjunto de comandos de manipulao de banco de dados utilizado para criar e manter a estrutura desse banco de dados, alm de incluir, excluir, modificar e pesquisar todas as informaes ali contidas. A linguagem SQL dividida nos seguintes componentes: Data Definition Language (DDL): permite a criao dos componentes do banco de dados, como tabelas, ndices, etc. Principais comandos DDL: CREATE TABLE ALTER TABLE DROP TABLE

30

CREATE INDEX ALTER INDEX DROP INDEX Data Manipulation Language (DML): permite a manipulao dos dados armazenados no BD. Comandos DML: INSERT DELETE UPDATE Data Query Language (DQL): permite extrair dados do BD. Comando DQL: SELECT Data Control Language (DCL): prov a segurana interna do BD. Comandos DCL: CREATE USER ALTER USER GRANT REVOKE CREATE SCHEMA Comandos SQL Criar de Banco de Dados CREATE DATABASE <nome>[;] Exemplo: CREATE DATABASE bancoteste; Observaes: 1. Cada banco de dados (software) utiliza um terminador de comando especfico. Normalmente utilizado o ponto e vrgula (;) no Oracle, MySQL e DB2, mas encontra- se ponto (.) no Progress e o comando GO no SQLServer. 2. O comando SHOW DATABASES[;] mostra todos os bancos de dados existentes. 3. Quanto aos comandos SQL apresentados, os bancos de dados no so sensveis a letras maisculas ou minsculas. Contudo, o contedo das colunas normalmente sensvel, portanto deve-se tomar cuidado ao realizar comparaes entre valores alfanumricos. Uso do BD Quando um banco de dados criado, ele deve ser usado, o que acontece com a instruo: USE <nome> [;]

31

Exemplo: USE bancoteste Remoo de BD Para remover um banco de dados criado usamos a instruo DROP DATABASE, seguida do nome do bd [;] e da ao da tecla <Enter>. Exemplo: DROP DATABASE bancoteste; Utilize o comando SHOW DATABASES; e verifique que o bd bancoteste no existe mais. Criao de Tabelas CREATE TABLE <tabela> (<campo> <tipo dado do campo> [NULL/NOT NULL] [PRIMARY KEY] ) [;] <tabela> a definio do nome da tabela; <campo> o nome do campo definido; <tipo dado do campo> um tipo de dado a partir de uma lista de tipos de padro que veremos abaixo; [NULL/NOT NULL] a definio do campo em aceitar ou no valores nulos. Constraint de coluna regra agregada coluna.; [PRIMARY KEY] determina que o campo a chave primria da tabela. Constraint de tabela regra agregada tabela.

Lista dos principais tipos de dados mais comuns BIGINT utiliza-se esse tipo de dado quando usar valores inteiros grandes na faixa de valores de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Esse tipo de dado ocupa 8 bytes de tamanho de armazenamento. CHAR(tamanho) usado com sequncias de caracteres de tamanho fixo que estejam entre 1 e 8.000 caracteres de comprimento. O parmetro (tamanho) determina o valor mximo em caracteres que pode conter a sequncia. Esse tipo de dado, quando definido, preenche o campo com espaos em branco at completar o total de caracteres definidos, quando a totalidade do tamanho do campo no preenchida. DATE utiliza-se esse tipo de dado para definir uma data que esteja no intervalo de tempo entre 01-01-0001 e 31-12-9999. A preciso de um dia. Esse tipo de dado ocupa 3 bytes de tamanho de armazenamento. DATETIME utilizado com uma data de calendrio combinada com a hora do dia no formato DD-MM-AAAA HH:MM:SS [,NNN] (considerando o uso no idioma portugusbr do bd a ser utilizado) no intervalo de tempo entre 01-01-1753 e 31-12-9999. Esse tipo de dado ocupa 8 bytes de tamanho de armazenamento. DECIMAL[(tamanho[, decimal])] utiliza-se esse tipo de dado quando for preciso usar valores com ponto flutuante de preciso e escala fixos na faixa de valores de 10E-28 +1 a 7.9x10E+28 -1. O parmetro (tamanho) determina a quantidade mxima de dgitos decimais que podem ser armazenados esquerda e direita do ponto flutuante (ponto decimal). O parmetro (decimal) determina a quantidade mxima de dgitos decimais que podem ser armazenados direita do ponto flutuante. FLOAT utiliza-se esse tipo de dado quando usar valores com ponto flutuante pequeno (preciso simples) na faixa de -1.79E+308 a -2.23E-308, e entre 2.23E-308

32

e 1.79E+308. O parmetro decimal determina o nmero de casas decimais que pode variar de 1 a 53. INT utilizado quando houver a necessidade de usar valores inteiros longos na faixa de valores de -2.147.483.648 a 2.147.483.647, ou de o a 4.294.967.295. Esse tipo de dado ocupa 4 bytes de tamanho de armazenamento. REAL utiliza-se esse tipo de dado quando USAR VALORES REAIS NA FAIXA DE VALORES DE -3,40e+38 a 1,18E-38 e 1,18E-38 a 3,40e+38. Esse tipo de dado ocupa 4 bytes de memria. SMALLINT utiliza-se esse tipo de dado quando for necessrio usar valores inteiros curtos na faixa de -32.768 a 32.767, ou de 0 a 65533. Esse tipo ocupa 2bytes de memria. TIME utiliza-se esse tipo de dado para definir uma determinada hora de um dia que se encontra sem reconhecimento de fuso horrio e se baseia em um relgio de 24 horas operando na faixa de 00:00:00.0000000 a 23:59:59.9999999. A preciso de clculo de 100 nanossegundos. TINYINT utiliza-se esse tipo de dado quando precisar de valores inteiros pequenos na faixa de 0 a 255. Ele ocupa 1 byte de tamanho de armazenamento. VARCHAR(tamanho) utiliza-se esse tipo de dado quando precisar de sequncias de caracteres de tamanho varivel que estejam entre 1 e 8.000 caracteres de cumprimento. A diferena entre esse tipo e o CHAR que, neste caso, os espaos em brancos excedentes do lado direito da sequncia de caracteres no utilizados so automaticamente desprezados.

Para visualizarmos, no MySQL, os campos criados, devemos escrever o seguinte comando: DESCRIBE <tabela>; Insero de Registros A partir do momento que uma tabela est pronta, ela j pode receber a entrada de dados atravs da instruo INSERT INTO, da seguinte forma: INSERT INTO <tabela (campo1, campo2, campo3, campoN)> VALUES <(valor1, valor2, valor3, valorN)>[;] Consulta de Registros Essa uma das tarefas mais importantes no trabalho de gerenciamento de banco de dados. Para visualizarmos todos os registros inseridos, devemos utilizar o seguinte comando: SELECT [DISTINCT] <campos> FROM <table> [condio] [;] DISTINCT um parmetro opcional que possibilita determinar o tipo de registro a ser selecionado, que pode ser um dos valores distintos ou apresentar todos os registros; campo a lista de campos a serem selecionados, em que pode ser utilizado * (asterisco) representando todos os campos da tabela; tabela a indicao do nome da tabela ou tabelas de onde se deseja retirar os registros; condio um parmetro opcional que determina a condio de ao da pesquisa, sendo aceitos os valores: WHERE (determina a ao de trabalho de uma condio baseada em uma relao lgica), GROUP BY (indica a forma de ordenao dos registros, podendo ser ASC ascendente e DESC descendente).

33

Alterao de Registros No processo de manuteno de registros em BD necessrio periodicamente atualizar dados e informaes existentes. As instrues para a atualizao so UPDATE... SET: UPDATE <tabela> SET <campo> = <expresso> [condio] [;] tabela a indicao da tabela na qual se deseja atualizar os registros; campo a indicao de um determinado campo da tabela; expresso a indicao do valor do campo a ser atualizado; condio um parmetro opcional que determina a condio de ao da pesquisa baseada no argumento WHERE. Remoo de Registros Dentre as vrias atividades de manuteno de registro, existe a possibilidade de remover registros que no sejam mais necessrios. Para isso, usaremos a instruo DELETE FROM, conforme a sintaxe abaixo: DELETE FROM <tabela> [condio] [;] tabela a indicao da tabela da qual se deseja remover registros. condio um parmetro opcional que determina a ao da pesquisa baseada no argumento WHERE. Obs.: Este comando deve ser cuidadosamente aplicado, pois se for acionado de forma inadequada pode ocasionar prejuzos, perdendo dados desnecessariamente. Por isso conveniente sempre utilizar o parmetro WHERE nas operaes de remoo de registros, evitando perda de dados dos demais registros. Alterao de Tabelas A estrutura de uma tabela algo que pode ser modificado com o tempo devido a alguma necessidade especfica. Podemos, assim, incluir um novo campo, retirar um campo existente ou mesmo modificar a sua estrutura. Para isso se utiliza a instruo ALTER TABLE, que possui a seguinte sintaxe: ALTER TABLE <tabela> <operao> [;] tabela a indicao da tabela na qual se deseja fazer a alterao do campo. operao um parmetro que pode receber um dos seguintes valores: ADD <campo> <tipo> - utiliza-se esse comando quando houver necessidade de insero de um novo campo em uma determinada tabela. O parmetro <campo> representa o nome do novo campo e <tipo> a sua estrutura (INT, CHAR, VARCHAR, etc.) DROP <campo> - usado quando h necessidade de remover um campo de uma determinada tabela. O parmetro <campo> representa o nome do campo a ser retirado da tabela. [;] opcional, de acordo com o software BD em utilizao. CONSULTA COM OPERADORES Operadores Aritmticos

34

possvel efetuar as quatro operaes matemticas no SQL, utilizando os seguintes smbolos:

Operadores de Comparao Tambm conhecidos como operadores relacionais so ferramentas utilizadas na definio de condies em que h necessidade de comparao entre dois valores e assim extrair uma variedade de consultas de uma determinada tabela.

Operadores Lgicos Faz o relacionamento entre duas ou mais condies ao mesmo tempo, e realiza testes mltiplos para obter consultas mais elaboradas.

Operadores Auxiliares Facilitam a definio de condies a serem utilizadas com os comandos SELECT, UPDATE e DELETE, quando do uso da WHERE.

35

LIKE O operador LIKE usado para verificar e comparar sequncias de caracteres dentro de um determinado campo, sendo utilizado com a clusula WHERE. O operador auxiliar LIKE aceita o uso de operadores curinga, aumentando assim sua capacidade de operao. Operadores curinga: % (porcentagem) representa zero, um ou vrios caracteres; e (_) (underline) representa um nico caractere. Veremos agora algumas sugestes de uso dessas referncias:

Chave Estrangeira um atributo que possui uma constraint de tabela que possibilita estabelecer o relacionamento entre duas tabelas. A chave estrangeira de uma determinada tabela pode ser nomeada igualmente chave primria na tabela referenciada ou pode obter outro nome, no entanto, em ambas as partes, necessrio evidenciar a referncia. Vejamos: ALTER TABLE tabela1 ADD [CONSTRAINT nome_FK] FOREIGN (nome_do_campo_FK) REFERENCES tabela2 (nome_do_campo_PK); KEY

Onde: Constraint admite outro nome para o campo da tabela1 que ser chave estrangeira (se no houver constraint, por default ser o nome_do_campo_FK); References d a referncia ao campo que chave primria na tabela2. INDEX um ndice que serve para prover um acesso rpido aos registros das tabelas. Os valores indexados so armazenados em um objeto do banco de dados em ordem, o que permite ao gerenciador do banco de dados pesquisar primeiro no ndice, para depois buscar na tabela. Deve-se evitar, entretanto, criar muitos ndices para os campos das tabelas, isto porque, quando criamos um ndice estamos criando um novo objeto que manter as informaes indexadas e armazenar a referncia linha fsica da tabela. Se so criados muitos ndices em uma tabela, pode-se prejudicar demasiadamente o desempenho do BD. Porm, se so criados poucos ndices, pode-se prejudicar o desempenho da aplicao. Algumas dicas para ajud-lo a decidir: a) Chaves Primrias: se o seu BD no cri-las automaticamente, crie.

36

b) Chaves Estrangeiras: Crie. c) Colunas utilizadas frequentemente na clusula WHERE do comando SELECT: crie. d) Colunas com muito contedo NULO (NULL): no crie. e) Colunas com muitos valores iguais: no crie. f) Tabelas muito pequenas: no crie. Naturalmente, sempre que uma consulta ao BD estiver muito lenta, verifique a possibilidade de criar um ndice para facilitar a busca. CREATE [UNIQUE] INDEX nome on tabela (campo1, campo2,..., [ASC | DESC] ); Ou ALTER TABLE tabela ADD INDEX nome (campo1, campo2,...,[ASC | DESC]); Onde: UNIQUE identifica que esse ndice no permite repetio de contedo na chave. Se o ndice no for especificado, admitir repetio; nome nome do objeto que ser criado; tabela nome da tabela que contm o(s) campo(s); campo lista de campos que compe a chave de indexao. ASC determina que a ordem de indexao ascendente (default, caso no seja definido DESC); DESC determina que a ordem de indexao descendente. DROP INDEX Para excluir um ndice, utilize o seguinte comando: DROP INDEX nome on table;

lgebra Relacional

Apresentao das operaes da lgebra relacional: seleo, projeo, produto cartesiano, diferena, unio, interseco, juno e diviso.
Desenvolvida para descrever operaes sobre uma base de dados relacional; Cada operador toma uma ou duas relaes como sua entrada e produz uma nova relao como sua sada; Linguagem da consulta terica, usurios no a utilizam diretamente; usada internamente em todos os SGBDRs (Sistemas Gerenciadores de Bancos de Dados Relacionais). Caractersticas Constituda de cinco operadores fundamentais: Seleo (sigma) Projeo (pi) Produto cartesiano X

37

Diferena Unio Trs operadores derivados: Interseco Juno Diviso :

Seleo Produz uma nova relao apenas com as tuplas (linhas) da primeira relao (tabela) que satisfazem a uma determinada condio (tambm chamada de predicado).

Projeo Produz uma nova relao com apenas alguns atributos da primeira relao, removendo as tuplas duplicadas.

Produto Cartesiano Produz uma nova relao com todas as possveis tuplas resultantes da combinao de duas tuplas, uma de cada relao envolvida na operao.

Diferena Produz uma nova relao com todas as tuplas da primeira relao que no aparecem na segunda relao. As duas relaes devem ter o mesmo nmero de atributos (colunas) e mesmos domnios para as colunas correspondentes.

38

Unio Produz uma nova relao composta por todas as tuplas da primeira relao seguidas por todas as tuplas da segunda relao. Tuplas comuns s duas relaes aparecero apenas uma vez no resultado. As duas relaes devem ter o mesmo nmero de atributos (colunas) e mesmos domnios para as colunas correspondentes.

Interseco Produz uma nova relao com a interseco das tuplas da primeira relao com as tuplas da segunda, ou seja, apenas com as tuplas que aparecem nas duas relaes. As duas relaes devem ter o mesmo nmero de atributos e mesmos domnios para as colunas correspondentes.

Juno Produz uma nova relao com as tuplas resultantes da combinao de duas tuplas, uma de cada relao envolvida na operao que satisfazem a uma determinada condio.

39

Juno Natural Juno na qual h uma igualdade predefinida entre os atributos de mesmo nome presentes na primeira e na segunda relao (atributos de juno). Estes atributos s aparecem uma vez no resultado.

Diviso Produz uma relao S contendo todas as tuplas de A (dividendo) que aparecem em R (mediador) com todas as tuplas de B (divisor).

40

Referncias Bibliografias: Introduo a Sistemas de Banco de Dados, Date, C.J., Ed. Campus, 674 pg; Projeto de Sistemas e Bancos de Dados, Monteiro, Emiliano S., Ed. Brasport Livros e Multimdia Ltda, 321 pg; Banco de Dados Projeto e Implementao, Machado, Felipe Nery Rodrigues, Ed. rica, 398 pg.

Sites: http://www.criarweb.com/artigos/modelos-banco-dados.html, visitados em 31/jul/2011; http://inf.upf.tche.br/esi/arquivos/Modelos_de_dados_convencionais.pdf, visitado em 31/jul/2011; http://www.administradores.com.br/informe-se/artigos/modelo-de-redes-em-bancode-dados/26541/, visitado em 01/08/2011; http://www.pucrs.campus2.br/~jiani/bd/relacional.pdf, visitado em 02/08/2011; http://www.inf.ufsc.br/~vania/teaching/ine5613/Aula2_ModeloERa.ppt, visitado em 02/08/2011; http://www.dpi.inpe.br/livros/bdados/cap3.pdf, visitado em 12/08/2011; http://www.inf.ufsc.br/~raul/livro/06-ModelagemConceitual.ppt, visitado em 12/08/2011; http://pt.wikipedia.org/wiki/Modelagem_de_dados, visitado em 12/08/2011;

41

Das könnte Ihnen auch gefallen