1 / 47

Introdução a Bancos de Dados (BD’s)

Colégio da Imaculada Curso Técnico em Informática. Introdução a Bancos de Dados (BD’s). Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br. 2º Módulo. Banco de Dados, por quê?. Independência entre Dados e Programas DATA INDEPENDENCE.

loyal
Download Presentation

Introdução a Bancos de Dados (BD’s)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Colégio da Imaculada Curso Técnico em Informática Introdução a Bancos de Dados (BD’s) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br 2º Módulo

  2. Banco de Dados, por quê? Independência entre Dados e Programas DATA INDEPENDENCE DADOS - fatos que podem ser armazenados ex:nomes, telefones, endereços... BASE DE DADOS - coleção de dados inter-relacionados logicamente, ex: agenda de telefones, catálogo de produtos...

  3. Introdução Representação dos dados em computadores antes do conceito de banco de dados Organização exemplo: Universidade

  4. Introdução Situação: * cada aplicação da organização com o seu conjunto de dados * descrição dos dados fica dentro das aplicações * não existe compartilhamento de dados entre as aplicações Problemas: * redundância de dados * difícil manutenção dos dados * falta de uma padronização na definição dos dados * não há preocupação com a segurança dos dados (segurança de acesso e segurança contra falhas)

  5. Banco de Dados Definição de Banco de Dados (BD): "Uma coleção de dados operacionais inter-relacionados. Estes dados são armazenados de forma independente dos programas que os utilizam, servindo assim a múltiplas aplicações de uma organização."

  6. Banco de Dados • Vantagens do uso de BD em relação aos métodos tradicionais, baseados em papéis e arquivos: – é compacto : não há necessidade de arquivos de papéis volumosos; – é rápido : a máquina recupera e modifica os dados muito mais rapidamente do que o ser humano; – menos trabalho braçal : arquivamento; – tem fluxo corrente : informações corretas e atualizadas a qualquer momento.

  7. Banco de Dados

  8. Banco de Dados • Vantagens do uso de BD em relação aos sistemas de arquivos tradicionais: • reduzir a redundância; • a inconsistência pode ser evitada; • compartilhar os dados; • aplicar restrições de segurança; • manter a integridade.

  9. Algumas Necessidades de Bancos de DadosCriação e/ou Atualização • “ Sou do departamento de retrato falado (RF) da polícia federal e tenho uma enorme dificuldade em identificar possíveis criminosos comparando, manualmente, um RF com os demais RFs que dispomos. O vocês podem fazer para melhorar isso?” • “Sou gerente geral de uma rede de supermercados do estado e gostaria de obter informações atualizadas de cada loja. Além disso, gostaria de saber, periodicamente, os produtos mais vendidos por loja, por mês. Vocês podem me ajudar?” • “Tenho fichas de preenchimento de meus clientes no minimercado. Faço para muitos a compra “fiado” via caderno. Meu caderno está uma bagunça. O que fazer para resolver o meu problema?” • “Tenho vários tipos de documentos dos mais diversos formatos (DOC, HTML, BD) disponibilizados meu site. Como poderia permitir que meus usuários consultassem todos esses dados de forma mais uniforme e otimizada?” • “Sou gerente de uma fazenda e gostaria de analisar melhor minhas terras e as previsões do tempo para saber o que plantar para ser mais rentável.” • Dados de satélites, Relevo, Clima, Vegetação local, Geologia, etc... • “Sou agente de viagens e gostaria de disponibilizar dados da minha cidade e obter dados de outras cidades on-line para conseguir ajudar outros agentes e fechar melhores pacotes.”

  10. Banco de Dados Exemplo de um Banco de Dados: “Projeto ABC”

  11. Exercício: • Responda (pergunta e resposta no caderno): • Qual a necessidade da criação de bancos de dados? • Como era a “organização” antes da criação de bancos de dados? • Monte, com suas palavras, uma definição para Banco de Dados. • Quais as vantagens de Bancos de Dados com relação à utilização de métodos tradicionais? • Crie um banco de dados contendo duas tabelas (crie as tabelas). • Nomeie o banco de dados; • As tabelas serão “Aluno” e “Professor”; • Inclua campos para as tabelas e alguns exemplos de atributos (valores dos campos);

  12. Modelo Hierárquico • Similar ao modelo em rede - com relação aos dados e suas relações serem representadas por registros e links. • Diferença: no modelo hierárquico os registros estão organizados em árvores ao invés de gráficos arbitrários

  13. Silvia Av.D.Pedro Itu Mário Av. S.Carlos S.P. Rui Rua XV S.Carlos 1234 55,00 7556 3.000,00 1333 600,00 7556 3.000,00 5512 350,00 Modelo Hierárquico (exemplo) Cada tipo de registo tenha apenas um possuidor!

  14. Modelo de Rede • Representados por um conjunto de registros (como no Pascal) e as relações entre estes registros são representadas por links (ponteiros) • Registros são organizados no BD por um conjunto arbitrário de grafos

  15. Mário Av. S.Carlos S.P. 1234 55,00 1333 600,00 Rui Rua XV S.Carlos 7556 3.000,00 Silvia Av.D.Pedro Itu 5512 350,00 Modelo de Rede (exemplo) Evolução do Modelo Hierárquico!

  16. Modelo Relacional • Usa um conjunto de tabelas para representar tanto os dados como a relação entre eles. • Cada tabela possui múltiplas colunas e cada uma possui um nome único (CAMPO) colunas linhas

  17. Modelo Relacional (exemplo)

  18. Diferença entre modelos • Modelo relacional difere por não usar nem ponteiros nem links (relaciona os registros por valores próprios a eles) • Como não é necessário uso de ponteiros: possibilidade do desenvolvimento de fundamentos matemáticos para sua definição

  19. Álgebra Relacional • If (Álgebra Relacional=“Já Visto”) • Then: “Passar adiante no conteúdo de BD!” • Senão: “Visualizar antes de continuar com BD.”

  20. Linguagens de Banco de Dados • Dois tipos de linguagens: 1. específica para os esquemas do BD (Linguagens de Definição de Dados) 2. para expressar consultas e atualizações (Linguagem de Manipulação dos Dados)

  21. Linguagens de Definição de Dados – DDL • Para expressar a especificação do esquema de dados • data-definition language (DDL) • resultado da compilação dos parâmetros DDL’s armazenado em tabelas que constituem o dicionário de dados ou diretório de dados • dicionário de dados: arquivo de metadados (dados a respeito de dados)- no SGBD o diretório é consultado antes que o dado real seja modificado

  22. Linguagens de Definição de Dados – DDL create table alter table drop table create view, drop view Comandos básicos:

  23. Linguagem de Manipulação dos Dados DML • data-manipulation language (DML) • manipulação de dados: • recuperação das informações armazenadas no BD • inserção de novas informações no BD • remoção de informações do BD • modificação das informações do BD • DML viabiliza o acesso (manipulação) dos dados de forma compatível ao modelo de dados apropriado

  24. Linguagem de Manipulação dos Dados DML • Proceduraisexigem que o usuário especifique quaisdados são necessários, e como obtê-los (passos avançados em bds) • Não Proceduraisexigem que se especifique quaisdados são necessários, sem especificar como obtê-los (passos simples em bds). • Linguagens de consulta (query)  SQL* * SQL (Structure Query Language) is a database query language that was adopted as an industry standard in 1986.

  25. Exercício: • Responda (pergunta e resposta no caderno): • O que são Bancos de Dados Relacionais (que utilizam o Modelo Relacional) ? • Como é representado um CAMPO em um Modelo Relacional? • Quais as linguagens existentes para se operar com bancos de dados? • Cite 2 (dois) exemplos de manipulação de dados feitas em um banco de dados. • Cite 1 (um) exemplo de uma linguagem de consulta a bancos de dados.

  26. Administração do armazenamento de dados (papel do Administrador do BD) interface entre os dados de baixo nível, armazenados no BD, os programas aplicativos e as consultas submetidas ao sistema • Gerenciamento de autorizações e integridade • Gerenciamento de transações • Administração de arquivos • Administração de buffer (memória)

  27. Contrapartida... • Criação de Pontos de conflito através do Compartilhamento de Dados; • Necessidades de especialização tecnológica e profissional; • Criação de motivos para “conflito Organizacional”.

  28. SGBD Sistema Gerenciador de Banco de Dados • Software (programa) que incorpora as funções de definição, recuperação e alteração de dados em um banco de dados. "É um sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco de dados."

  29. SGBD Um dos objetivos de um SGBD é prover aos usuários uma visão abstrata dos dados. – Omitir detalhes de como os dados são armazenados e mantidos. • Ocultar forma como são cadastrados, alterados ou excluídos; • Ocultar comandos utilizados para consultas; • Mostrar somente os resultados desejados; – Esconder a complexidade em diversos níveis de abstração que simplificam a interação do usuário com o sistema de BD. • Qual o melhor caminho a seguir para executar uma dada operação

  30. Alguns SGBD’s Comerciais • Oracle http://www.oracle.com.br • Sybase http://www.sybase.com.br • Informix http://www.informix.com • DB2 http://www.ibm.com.br • Interbase http://www.borland.com.br • MSSqlServer http://www.microsoft.com.br

  31. Alguns SGBD’s Livres • MySQL http://www.mysql.com • PostGreSQL http://www.postgresql.com • Firebird http://www.firebirdsql.org

  32. Catálogo • Contém a definição do Banco de Dados, descrita num (meta-)modelo de dados (específico de cada SGBD, utilizando o mesmo modelo lógico que o usado para a Base de Dados propriamente dita). • Exemplo: Num SGDB “relacional”, o catálogo contém as definições das tabelas, visões, regras de integridade, etc.. O Catálogo é por vezes designado por “Dicionário de Dados”

  33. Novas Necessidades • Evolução dos SGBD’s • Desempenho, Complexidade nas estruturas de dados, Sofisticação do Processamento, Controle de Integridade dos Dados, ... • Sistemas de Suporte à Decisão • Interoperabilidade entre SGBD’s, e entre SGBD’s e outros tipos de sistemas (p.e. WWW) • Novos tipos de Aplicações • Armazenamento cada vez maior em meio digital.

  34. Portanto... • Não confunda: Banco de Dados: Banco de Dados:

  35. SQL Structure Query Language (Linguagem Estruturada de Consultas) • Padrão em SGBDs Relacionais • Implementa operações da álgebra relacional

  36. SQL • Tipos: DDL – Data Definition Language Linguagem de Definição de Dados • Definiçãode uma relação (ou tabela) Create Table <nome_tabela> ( atribute1 INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, atribute2 CHAR(20) DEFAULT '' NOT NULL, atribute3 DOUBLE(16,2) DEFAULT '0.00' NOT NULL, PRIMARY KEY(atribute1, atribute2) );

  37. SQL b) Alteração de uma tabela Alter Table <nome_tabela> add atribute4 INT(6); Alter Table <nome_tabela> drop atribute2; c) Remoção da tabela Drop Table <nome_tabela>;

  38. SQL • Tipos: DML – Data Manipulation Language Linguagem de Manipulação de Dados • Comandos de Atualização do BD a.1) Inserção de Tuplas Insert Into <nome_tabela> values (123,’A’,1.05,555),(456,’B’,2,333); a.2) Alteração de Tuplas Update <nome_tabela> set {atributox} where {condicao};

  39. SQL a) Comandos de Atualização do BD a.3) Remoção de Tuplas Delete from <nome_tabela> where {condição};

  40. SQL b) Comando de Consulta (Query Language) Comando SELECT b.1) Selecionar todas as tuplas de uma tabela SELECT * from <nome_tabela>; b.2) Selecionar todas as tuplas que obedeçam 1 condição: SELECT * from <nome_tabela> where {condição}; b.3) Existem vários outros tipos de consultas...

  41. MySQL SISTEMA GERENCIADOR DE BD FREE. Comando SELECT b.1) Selecionar todas as tuplas de uma tabela SELECT * from <nome_tabela>; b.2) Selecionar todas as tuplas que obedeçam 1 condição: SELECT * from <nome_tabela> where {condição}; b.3) Existem vários outros tipos de consultas...

  42. MySQL Chave Primária A função da chave primária é identificar univocamente uma linha da tabela. Cada tabela deve possuir uma chave primária. Quando se define um atributo como chave primaria, fica implícito as cláusulas UNIQUE e NOT NULL para este atributo, não sendo necessário a especificação destas. create tablecliente (codigo number(5) primary key, nome char(30) not null, sexo char(1) CHECK(sexo IN (‘M’, ‘F’)), CPF number(11) UNIQUE, endereco char(40), cidadechar(20) DEFAULT ‘Maceio’ );

  43. MySQL Chave Primária • Opcionalmente pode-se definir a chave primária após a especificação de todos os atributos da tabela. create tablecliente (codigo number(5), nome char(30) not null, sexo char(1) CHECK(sexo IN (‘M’, ‘F’)), CPF number(11) UNIQUE, endereco char(40), cidadechar(20) DEFAULT ‘Maceio’, primary key (codigo) ) );

  44. MySQL Integridade referencial Freqüentemente desejamos assegurar que o valor de um determinado campo de uma tabela esteja presente na chave primária de outra tabela. Este campo é chamado chave estrangeira (FOREIGN KEY). A SQL original padrão não incluía instruções para especificar chaves estrangeiras. Um aperfeiçoamento posterior foi aprovado como uma adição ao padrão. Este recurso permite a especificação de chaves primárias e estrangeiras como parte da instrução create table. create tablemovimento (agencia number(5) referencesagencias(codigo), conta number(7) referencescontas(numero), valor number(16,2), primary key (agencia, conta) );

  45. MySQL Integridade referencial • Assim como na definição da chave primária, pode-se definir a chave estrangeira após a especificação de todos os campos (domínio) da tabela. create tablemovimento (agencia number(5) conta number(7) valor number(16,2), primary key (agencia, conta) foreign key (agencia) referencesagencias, foreign key (conta) referencescontas );

  46. MySQL Integridade referencial • Chave estrangeira: exemplo: create tablemovimento ( agenciax number(5) contax number(7) valor number(16,2), primary key (agenciax, contax), foreign key (agenciax) referencesagencias (agencia), foreign key (contax) referencescontas (conta) );

  47. Referências Bibliográficas • Tutoriais, apostilas e cursos sobre Bancos de Dados e SQL. Disponível em: http://www.devmedia.com.br/portal/ Disponível em: http://www.apostilando.com/sessao.php?cod=18 Disponível em: http://www.sobresites.com/bancodedados/bancodedados.htm • Organização de Banco de Dados. Profa. Denise Bandeira – Unisinos/2007. Disponível em:http://inf.unisinos.br/~bandeira

More Related