Introducao Bd

55
TECNOLOGIAS E LINGUAGENS PARA BANCO DE DADOS I

description

Apostila de Banco de Dados

Transcript of Introducao Bd

  • TECNOLOGIAS E LINGUAGENS

    PARA BANCO DE DADOS I

  • CONCEITOS BSICOS: BANCO DE DADOS

    uma coleo de dados inter-relacionados, representando informaes sobre um domnio especfico (conceito geral). um BD representa aspectos do mundo real. Mudanas no

    mundo real so refletidas no BD. um BD uma coleo lgica e coerente de dados com

    relacionamentos intrnsecos. um conjunto de dados sem nenhum relacionamento,

    no pode ser considerado um BD. um BD projetado, construdo e mantido para uma

    proposta especfica. direcionado a um grupo de usurios de uma determinada aplicao.

    um BD pode possuir qualquer tamanho/complexidade. Em outras palavras, um BD tem alguma fonte onde os

    dados so derivados, algum grau de interao com eventos no mundo real, e uma audincia interessada no contedo desse BD.

  • CONCEITOS BSICOS: BANCO DE DADOS

    Banco de Dados (BD) se transformou em um componente essencial do dia-a-dia na sociedade moderna.

    Exemplos: ir a um banco para fazer depsito ou retirada de dinheiro. fazer a reserva em um hotel ou em uma companhia area. fazer pesquisa de itens em uma biblioteca computadorizada. pesquisar preos de itens em um supermercado.

    As atividades acima so exemplos de aplicaes tradicionais de BD. Onde a maioria das informaes so armazenadas atravs de textos ou nmeros.

    H poucos anos atrs, a tecnologia permitiu novas aplicaes para BD

    Exemplos: Banco de dados multimdia: armazena figuras, som e

    vdeo.

    SIGS - Sistemas de informaes geogrficas: armazenam e analisam mapas, tempo e imagem de satlite.

    Sistemas em tempo real: controle de cho de fbrica e processos de manufatura.

  • UM POUCO DE HISTRIA

    O primeiro banco de dados teve incio nas dcadas de 60

    e 70 na IBM, com pesquisas em automao de tarefas de

    escritrio.

    Naquela poca, tinha-se que ter muita gente ($$$)

    para armazenar e indexar os arquivos.

    Em 1970 um pesquisador da IBM - Ted Codd publicou o

    primeiro artigo sobre bancos de dados relacionais. Este

    artigo tratava sobre uma forma de consultar os dados

    (em tabelas) por meio de comandos.

  • UM POUCO DE HISTRIA

    Inicialmente, por ser muito complexo, no foi

    aceito nem implantado.

    A IBM criou um grupo de pesquisa chamado

    System R, com o objetivo de desenvolver um

    sistema de BD para ser comercializado.

    System R introduziu uma linguagem chamada

    Structured Query Language (SQL).

  • UM POUCO DE HISTRIA

    Essa linguagem tornou-se padro internacional

    para BD relacional.

    O System R passou a se chamar SQL/DS.

    SQL/DS evoluiu para DB2, que o banco de

    dados comercial da IBM.

  • SISTEMAS DE ARQUIVOS VS BANCO DE DADOS

    Alguns Sistemas de Arquivos: FAT32, NTFS,

    Ext2, Ext3, ReiserFS....

    Alguns Bancos de Dados: MySQL, SQL Server,

    Firebird, PostegreSQL, DB2, Oracle...

    Ambos tem um objetivo em comum:

    Armazenar dados em sistemas de computao.

  • SISTEMAS DE ARQUIVOS VS BANCO DE DADOS

    Sistemas de arquivos

  • SISTEMAS DE ARQUIVOS VS BANCO DE DADOS

    Banco de Dados Rapidez no acesso s informaes presentes no Banco

    de Dados; Reduo de problemas de integridade e redundncia; Diminuio do esforo humano no desenvolvimento; Utilizao dos dados e controle integrado de

    informaes distribudas fisicamente. Descreve uma coleo lgica e coerente de dados com

    algum significado inerente. Uma organizao randmica de dados no pode ser considerada um Banco de Dados;

    Constri em atendimento a uma proposta especfica.

  • SISTEMAS DE ARQUIVOS VS BANCO DE DADOS

    Processamento de arquivo tradicional

    Cada usurio define e implementa os arquivos

    necessrios para uma aplicao de software

    especfica.

    Abordagem de Banco de Dados

    Um nico repositrio mantm dados que so

    definidos uma vez e depois acessados por vrios

    usurios.

  • SGBD

    um conjunto de aplicaes usado para gerenciar um Banco de Dados: armazenar, recuperar e modificar informaes. proporcionar um ambiente conveniente e eficiente

    para recuperar e armazenar informaes de um banco de dados.

    manipular grande volume de informaes. prover segurana s informaes armazenadas. controlar concorrncia, evitando resultados anmalos

    na atualizao de informaes no BD. prover mecanismos para criao e manipulao de

    estruturas de armazenamento de informao. restringir acesso a dados de usurios no

    autorizados.

  • SGBD

    Um SGBD um software de propsito geral que

    facilita os seguintes processos:

    Definio

    Construo

    Manipulao

    um meio conveniente e eficiente para

    recuperao e armazenamento.

    IMPORTANTE: No necessrio usar um SGBD

    para implementar um banco de dados.

  • SGBDS

  • SGBD - ATORES

    Programador de Aplicaes Definio e implementao de programas que

    USAM a base de dados

    Programas enviam solicitaes de servios ao SGBD

    Trabalham sobre a definio lgica ou sobre

    uma viso externa especfica

    Usurio Final Usam a base de dados para suas funes do dia-

    a-dia

    Interagem com o sistema a partir de

    uma estao de trabalho

    aplicao linguagem de consulta interativa

  • SGBD - ATORES

    Administrador do Banco de Dados (DBA) Pessoa(s) que detm a responsabilidade (tcnica)

    central sobre os dados

    Definio do esquema

    conjunto de descries escritas com a DDL que so armazenadas no Dicionrio de Dados

    Definio da estrutura de armazenamento

    Requisitos de espao de armazenamento, desempenho, concorrncia, criao ou no de ndices, etc.

    Monitorar desempenho

    Modificao do esquema e Reorganizao fsica

    desempenho e alterao nos requisitos funcionais

    Concesso de autorizao de acesso a dados

    Especificao de restrio de integridade

    Definio de estratgias de recuperao de dados

  • SGBD - ATORES

    Projetista do Banco de Dados Identificar requisitos informacionais da

    corporao

    Escolher estruturas apropriadas para

    representao da informao

    Interagir com o usurio

    Pode ser confundido com o papel de DBA

  • QUANDO USAR UM SGBD

    Controlar redundncia Aumento da consistncia atravs de uma maior

    integrao e centralizao dos dados

    Restringir acesso no autorizado Persistncia dos dados (alm da execuo) Representao de relaes complexas entre os

    dados Estabelecimento de regras e padres Fornecer back-up e recuperao Controle de acesso concorrente Esforo reduzido de desenvolvimento para

    aplicaes orientadas a dados

  • RAZES PARA NO UTILIZAR UM SGBD

    Custo maior que o benefcio !!! custo de HW, SW e treinamento. solues genricas para definir e processar dados. custo pela segurana, controle de concorrncia,

    recuperao, manuteno de integridade, etc.

    Base de dados e aplicaes simples, bem definidas, e sem previso de alterao a mdioprazo.

    Aplicaes com requisitos de desempenho (ex:tempo real). Aplicaes mono-usurio.

  • TRABALHO

    Dissertar sobre os SGBDs: MySQL, SQL Server,

    PostgreSQL e Oracle sobre suas principais

    caractersticas, custo para aquisio, empresas

    que os utilizam, seus diferenciais de mercado e,

    baseado em sua anlise fazer uma concluso de

    qual voc escolheria e porque?

    Entrega: at 06/08 pelo e-mail:

    [email protected]

  • MODELOS DE BANCO DE DADOS

    Modelo de banco de dados uma descrio dos tipos de informaes que esto armazenadas em um banco de dados.

    Por exemplo, pode informar que o banco armazena informaes sobre produtos e que, para cada produto, so armazenados seu cdigo, preo e descrio.

    O modelo no informa QUAIS produtos esto armazenados, apenas que tipo de informaes contm.

  • MODELO DE BANCO DE DADOS

    Para construir um modelo de dados, usa-se uma linguagem de modelagem de dados.

    Existem linguagens textuais e linguagens grficas.

    possvel descrever os modelos em diferentes nveis de abstrao e com diferentes objetivos.

    Cada descrio recebe o nome de esquema de banco de dados.

  • MODELO CONCEITUAL

    uma descrio de banco de dados de forma independente de implementao num sistema de gerenciamento.

    Registra QUE dados podem aparecer no banco, mas no registra COMO estes dados esto armazenados no SGBD.

  • MODELO CONCEITUAL

    Exemplo de um modelo conceitual textual:

    1) Cadastro de Clientes

    Dados necessrios: nome completo, tipo de pessoa (fsica ou jurdica), endereo, bairro, cidade, estado, telefone, email, nome de contato.

    2) Pedido

    Dados necessrios: cdigo do produto, quantidade, cdigo do cliente, cdigo do vendedor.

  • EXERCCIO DE FIXAO

    Descreva um modelo conceitual textual para armazenar os dados de livros, autores e editoras.

  • RESPOSTA PROVVEL

    Cadastro de Livros: Ttulo, subttulo, autor, editora, nmero de pginas, preo de compra, j foi lido, ISBN, nmero de pginas, ano de publicao, nmero da edio...

    Cadastro de Autores: Nome completo, data de nascimento, nacionalidade, gnero literrio...

    Cadastro de Editoras: Nome, cnpj, endereo, bairro, cep, cidade, estado...

  • MODELO LGICO

    Compreende uma descrio das estruturas que sero armazenadas no banco e que resulta numa representao grfica dos dados de uma maneira lgica, inclusive nomeando os componentes e aes que exercem uns sobre os outros.

  • MODELO LGICO

    Exemplo de um modelo lgico

  • MODELO LGICO

    O modelo lgico tambm pode ser representado assim:

    - TipoDeProduto (CodTipoProd, DescrTipoProd)

    - Produto (CodProd, DescrProd, PrecoProd,

    CodTipoProd)

    CodTipoProd referencia TipoDeProduto

  • MODELO LGICO

    A tcnica de modelagem mais difundida a abordagem entidade-relacionamento (ER). Nesta

    tcnica, um modelo conceitual usualmente representado atravs de um diagrama, chamado diagrama entidade-relacionamento (DER).

    Por enquanto iremos estudar apenas o modelo relacional, no qual os dados esto organizados em forma de tabelas.

  • MODELO FSICO

    uma descrio de um banco de dados no nvel de abstrao visto pelo usurio do SGBD. Assim, esse modelo depende do SGBD que est sendo usado.

    Aqui so detalhados os componentes da estrutura fsica do banco, como tabelas, campos, tipos de valores, ndices, etc.

    Nesse estgio estamos prontos para criar o banco de dados propriamente dito, usando o SGBD preferido.

  • MODELO FSICO Exemplo de tabelas em um BD Relacional.

    Tipo de Produto

    Produto

    Cdigo Descrio

    1 Computador

    2 Impressora

    Cdigo Descrio Preo CdigoDoTipo

    10 Desktop 1.200,00 1

    20 Laptop 1.800,00 1

    30 Impr. Jato Tinta 300,00 2

    40 Impr. Laser 500,00 2

  • MODELO FSICO

    Detalhamento de uma tabelaCadastro de paciente

    Nome do campo Endereo Tamanho do

    campo

    Cdigo do paciente Numrico 5 dgitos

    Nome do paciente Alfanumrico 50 caracteres

    Endereo Alfanumrico 50 caracteres

    Bairro Alfanumrico 40 caracters

    Cidade Alfanumrico 40 caracteres

    Estado Alfanumrico 2 caracteres

    CEP Alfanumrico 9 caracteres

    Data de Nascimento Data 10 caracteres

  • MODELO ENTIDADE-RELACIONAMENTO

    A tcnica de modelagem mais usada a

    Abordagem Entidade-Relacionamento (ER). O

    modelo de dados representado graficamente

    atravs de um Diagrama de Entidade-

    Relacionamento (DER).

    Essa abordagem foi criada por Peter Chen (1976)

    considerada como um padro para a modelagem

    conceitual.

  • MODELO ENTIDADE-RELACIONAMENTO

    O modelo Entidade-Relacionamento (E-R) tem

    por base que o mundo real formado por um

    conjunto de objetos chamados de entidades e pelo

    conjunto dos relacionamentos entre esses objetos;

    O objetivo do modelo E-R representar a

    estrutura lgica do banco de dados de uma

    empresa, especificando o esquema da empresa,

    quais as entidades e como elas se relacionam

    entre si.

  • MODELO ENTIDADE-RELACIONAMENTO

    O modelo E-R chamado de Modelagem

    Conceitual, cujo objetivo representar de uma

    forma abstrata, independente da implementao

    em computador, os dados que sero armazenados

    no banco de dados.

  • ENTIDADE

    um objeto ou evento do mundo real sobre o qual

    desejamos manter um registro;

    representada por um retngulo;

    caracterizada por seus atributos;

    Ex: Aluno, Carro, Produto, Funcionrio, etc

  • ATRIBUTO

    uma propriedade ou caracterstica que descreve uma entidade. Tambm chamado de campo ou coluna (tabelas).

    Exemplo: atributos da entidade ALUNO:

    nome, data de nascimento, telefone, endereo, etc

  • ATRIBUTO-CHAVE

    um atributo que deve possuir um valor nico em

    todo conjunto de entidades. Este atributo utilizado

    para identificar unicamente um registro da tabela.

    Ex: matrcula, cpf, cdigo, renavam, chassi, etc

    Diferenciamos um atributo chave dos demais

    atributos colocando um * (asterisco) antes do nome do

    atributo ou sublinhando este.

  • RELACIONAMENTO

    uma relao entre uma, duas ou vrias entidades.

    Geralmente associamos atravs da ao (verbo) entre

    as entidades;

    representado por um losango;

    Exemplos:

    Pai possui Filho

    Cliente realiza pedido

    Vendedor vende produto

  • GRAU DO RELACIONAMENTO

    a quantidade de entidades que esto ligadas ao

    relacionamento.

  • RELACIONAMENTO UNRIO (GRAU 1)

    Uma entidade se relaciona com ela mesma.

  • RELACIONAMENTO BINRIO (GRAU 2)

    um relacionamento que liga 2 tipos diferentes de entidades. o mais comum dos relacionamentos.

  • RELACIONAMENTO TERNRIO (GRAU 3)

    um relacionamento em que trs entidades esto interligadas por um mesmo relacionamento.

  • CARDINALIDADE

    Cardinalidade (mxima) define a quantidade

    de ocorrncias de uma entidade que poder estar

    associada a outra entidade.

    Ex.: Um vendedor pode vender apenas um tipo

    de produto? Ou dois? Ou trs?

    Um produto pode ser vendido por apenas um

    vendedor, ou por todos?

  • CARDINALIDADE

    Relacionamento binrio Um-para-Um (1:1) -

    Indica que uma ocorrncia da entidade A pode se

    relacionar exclusivamente com uma ocorrncia da

    entidade B e vice versa.

  • CARDINALIDADE

    Ex.: Um vendedor ocupa um nico escritrio e

    um escritrio pode ser ocupado por um nico

    vendedor.

  • CARDINALIDADE

    Relacionamento binrio Um-para-Muitos

    (1:n) uma ocorrncia da entidade A pode se

    relacionar com vrias ocorrncias da entidade B,

    porm o inverso no permitido.

    Ex. Um vendedor atende muitos clientes. Porm,

    cada cliente tem um vendedor especfico.

  • CARDINALIDADE

    Rel. binrio Muitos-para-Muitos (n:m) uma

    ocorrncia da entidade A pode se relacionar com

    muitas ocorrncias da unidade B e vice versa.

    Ex.: Um vendedor atende muitos clientes, e um

    cliente pode ser atendido por diversos

    vendedores.

  • CARDINALIDADE

    Na prtica, o relacionamento n:m dividido em

    duas relaes 1:n e uma nova entidade criada

    para representar o relacionamento.

  • CARDINALIDADE

    Cardinalidade (mnima) define o nmero

    mnimo de ocorrncias de entidade que precisam

    estar associadas a outra entidade (em carter

    obrigatrio).

    S consideramos duas cardinalidades mnimas: 0

    e 1.

    Escreve-se: 0..1 1..1 0..n 1..n 0..* 1..* etc...

  • CARDINALIDADE

    Ex.: Um vendedor ocupa um nico escritrio,

    porm obrigatrio que ele tenha um escritrio.

    (L-se no mnimo Um, no mximo Um).

    Um escritrio pode ser ocupado por um nico

    vendedor, porm pode ser que a sala esteja vazia,

    ainda sem vendedor. (L-se no mnimo Zero, no

    mximo Um).

  • CARDINALIDADE

  • EXERCCIO

    Desenhar o DER para as seguintes situaes:

    Exerccio_der.doc

  • FERRAMENTAS CASE