Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados para Redes - Aula 1 Professor Daniel Silos - 2ª edição - 2014 dsilos@live.estacio.br Introdução • O que é um banco de dados? • Um banco de dados é uma coleção de dados persistentes usados pelas aplicações de uma determinada organização (DATE, 2000). • É um conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários (HEUSER, 1998). • Exemplo de um banco de dados pessoal: – Agenda de telefones » Nome, telefone, endereço » Nome, telefone, endereço, e-mail » Nome, telefone, endereço, e-mail, twiiter O que não é um banco de dados Fonte: http://www.portaldavaca.com.br/imagens/bancodedados.asp Histórico • Como os dados eram armazenados no início da computação? – Arquivos de texto • Problemas comuns ao uso de arquivos textos: – Redundância não-controlada de dados e consequente inconsistência de informações. • Exemplo • Anos 60 – Surgem os primeiros sistemas de bancos de dados Qual o ganho ? • Redundância controlada • Maior consistência • Mecanismo de Recuperação • Segurança • Compartilhamento dos dados Introdução a Sistemas de Banco de Dados • Em essência, um sistema de Banco de Dados é apenas um sistema computadorizado de armazenamento de registros. • Permite a seus usuários: – Acrescentar novos Arquivos, vazios, ao Banco de Dados (BD) – Inserir novos dados em arquivos existentes – Alterar dados em arquivos existentes – Eliminar dados de arquivos existentes – Remover arquivos existentes do BD Introdução a Sistemas de Banco de Dados • Em essência, um sistema de Banco de Dados é apenas um sistema computadorizado de armazenamento de registros. • Permite a seus usuários: – Acrescentar novos Arquivos, vazios, ao Banco de Dados (BD) – Inserir novos dados em arquivos existentes – Alterar dados em arquivos existentes – Eliminar dados de arquivos existentes – Remover arquivos existentes do BD Campos R eg is tr o s TABELA: PRODUTOS TABELA: PRODUTOS Colunas Li n h as Atributos Tu p la s TABELA: PRODUTOS Exemplo de Consulta Busca: SELECT MODELO, COD_PRODUTO, QTD FROM PRODUTOS WHERE ANO_LANCAMENTO = 2012 RESULTADO: Exemplo de inserção INSERT INTO PRODUTOS (COD_PRODUTO, MODELO, FABRICANTE, CONEXAO, ANO_LANCAMENTO, QTD,PRECO_UNITARIO) VALUES (99, ‘VCP6578’, ‘BoraSoft’, ’USB’, 2012, 55, R$ 35,90); TABELA: PRODUTOS APÓS INSERÇÃO Exemplo de alteração UPDATE PRODUTOS SET QTD = 60 WHERE COD_PRODUTO = 71 TABELA: PRODUTOS ATUALIZADA Exemplo de exclusão DELETE FROM PRODUTOS WHERE COD_PRODUTO = 98 TABELA: PRODUTOS APÓS EXCLUSÃO Observação importante • Por razões óbvias, arquivos são chamados de tabelas em BD (tabelas relacionais, mais precisamente). INSERT INTO PRODUTOS (COD_PRODUTO, MODELO, FABRICANTE, CONEXAO, ANO_LANCAMENTO, QTD,PRECO_UNITARIO) VALUES (99, ‘VCP6578’, ‘BoraSoft’, ’USB’, 2012, 55, R$ 35,90); • Os campos MODELO, FABRICANTE e CONEXAO armazenam dados do tipo STRING (sequências) de caracteres, o Campo QTD armazena dado do tipo inteiro. • Tipos de Dados serão explicados mais a frente. • COD_PRODUTO → chave primária – Outros exemplos: Matrícula de um aluno, número de nota fiscal, etc. – SELECT, INSERT, UPDATE e DELETE → SQL (Structured Query Language – Linguagem de consulta estruturada). – Pronúncia original: “SEQUEL”. – Atualmente é um padrão (oficialmente não é mais uma abreviatura para alguma coisa) – Pronúncia atual: “ésse-quê-éle” – UPDATE → “alterar”, e não “atualizar”. Atualizar também é utilizado para se referir às três operações - INSERT, UPDATE e DELETE - como um grupo. Sistema de Banco de Dados Fonte: http://www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649 Sistema de gerenciamento de banco de dados • Ou Sistema Gerenciador de Banco de Dados (SGBD). • Sigla em inglês: DBMS (Database Management System) – “Coleção de dados inter-relacionados e um conjunto de programas para acessar esses dados.” (SILBERSCHATZ, 2006). Componentes principais • Dados – para Date, Dados e informações são a mesma coisa – Outros autores discordam desta visão • Hardware • Softwares • Usuários Dados • Consulta pode ser por sistemas – Monousuários • Cada vez mais raros – Multiusuários • Mais comum aos dias atuais • Dados integrados – Unificação de vários arquivos de dados que de outro modo seriam distintos; • Elimina redundância desnecessária. Dados • Dados compartilhados – Acesso a porções de dados do BD por diferentes usuários, podendo a finalidade ser distinta. – Acesso pode ser concorrente (em parte graças à Integração). – Visões diferentes dos mesmos dados • Usuários podem compartilhar os mesmos dados de diferentes modos. – Ex: Um professor acessa pela matrícula ou nome do aluno sua frequência nas aulas, enquanto, concorrentemente, um funcionário da secretaria acesse a matrícula do aluno para resolver uma solicitação. Hardware • Componentes de hardware – Volumes de armazenamento secundário – Processadores – Memória principal • Outros elementos fogem do escopo da disciplina Softwares Usuários Gerenciador de BD ou Servidor de BD ou SGBD Banco de Dados Físico Sistema Gerenciador de Banco de Dados (SGBD) • Do inglês Database Management System – DBMS ou Relational Database Management System – RDBMS). • É, como o próprio nome sugere, um sistema que gerencia o banco de dados. • Nele são incorporadas as funções de definição, recuperação e alteração de dados em um ou mais banco de dados. Sistema Gerenciador de Banco de Dados (SGBD) • Função Geral → isolar os usuários dos detalhes do nível do hardware. • Permite operações como as já vistas de SQL expressas em um nível mais alto. • É de longe o componente de software mais importante. • Ferramentas para desenvolvimento de aplicações, • utilitários, • auxílio em projetos, • geradores de relatórios, • gerador de transações. Outros componentes de software Observação Importante • Embora seja comum de se ler e ouvir, Banco de dados não é a mesma coisa que SGBD. 𝐵𝑎𝑛𝑐𝑜 𝑑𝑒 𝐷𝑎𝑑𝑜𝑠 ≠ 𝑆𝐺𝐵𝐷. • Igualar os dois é uma atitude tola e censurável, embora seja muito comum (DATE, 2000) Lista • 4th Dimension • Adabas D • Alpha Five • Apache Derby • Aster Data • Altibase • BlackRay • CA-Datacom • Clarion • Clustrix • CSQL • CUBRID • Daffodil database • DataEase • Database Management Library • Dataphor • Derby aka Java DB • Empress Embedded Database • EnterpriseDB • eXtremeDB • FileMaker Pro • Firebird • Greenplum • GroveSite • H2 • Helix database • HSQLDB • IBM DB2 • IBM Lotus Approach • IBM DB2 Express-C • Infobright • Informix • Ingres • InterBase • InterSystems Caché • GT.M • Linter • MariaDB • MaxDB • Microsoft Access • Microsoft Jet Database Engine (part of Microsoft Access) • Microsoft SQL Server • Microsoft SQL Server Express • Microsoft Visual FoxPro • Mimer SQL • MonetDB • mSQL • MySQL • Netezza • NonStop SQL • Openbase • OpenLink Virtuoso (Open Source Edition) • OpenLink Virtuoso Universal Server • OpenOffice.org Base • Oracle • Oracle Rdb for OpenVMS • Panorama • PostgreSQL • Progress Software• RDM Embedded • RDM Server • The SAS system • SAND CDBMS • Sav Zigzag • ScimoreDB • SmallSQL • solidDB • SQLBase • SQLite • Sybase Adaptive Server Enterprise • Sybase Adaptive Server IQ • Sybase SQL Anywhere (formerly known as Sybase Adaptive Server Anywhere and Watcom SQL) • Sybase Advantage Database Server • Teradata • TimesTen • txtSQL • Unisys RDMS 2200 • UniData • UniVerse • Vertica • VMDS Alguns SGBDs famosos • Oracle, SQL Server e db2 -> proprietários • PostgreSQL, MySQL e Firebird -> Software livre - Faça uma pesquisa sobre outros SBGDs comumente utilizados e descreva suas principais características (inclua os acima citados). Descreva quais são pagos e quais são softwares livres. - Acesse o endereço abaixo e analise as tabelas de comparação entre SGBDs existentes, informando quais quesitos estão sendo comparados. - http://en.wikipedia.org/wiki/Comparison_of_relatio nal_database_management_systems#External_links Usuários 1. Administrador do Banco de Dados (DBA – Database admininstrator) 2. Projetistas de BD 3. Usuário Final 4. Analistas de Sistemas 5. Programadores de aplicações O que é um Banco de Dados? • Dados persistentes • Um banco de dados é uma coleção de dados persistentes utilizada pelos sistemas de informações de uma organização. • Exemplos de dados persistentes: – Dados de produtos – Dados de contas bancárias – Dados de pacientes de um consultório médico – Dados de alunos de uma instituição de ensino Dados operacionais vs. persistentes • Dados Operacionais – DATE nas primeiras versões do seu livro. – Sistemas de Processamento de Transações (SPTs) – Por que hoje se chamam persistentes? SGBD SPTs Dados e SGBD • Dados – Latim “data”, plural de “datum”, que corresponde a “dar”. – Dados → fatos dados, a partir dos quais podem ser inferidos fatos adicionais. • Inferir fatos adicionais → exatamente o que o SGBD faz quando responde uma consulta do usuário. • SGBDs – Interpretação precedente de dados e banco de dados de forma muito direta (quase trivial); – Baseados em uma teoria formal chamada Modelo Relacional de Dados. Por que banco de dados? • Quais as vantagens? – Densidade • É mais fácil manipular do que arquivos de papel. – Velocidade • É mais fácil consultar que abrir um arquivo físico e buscar documentos em gavetas e pastas físicas. – Menor trabalho monótono • Em tarefas mecânicas, o computador tende a ser melhor. – Atualidade • Informações precisas e atualizadas disponíveis a qualquer momento sob consulta. – No caso de BD Multiusuários (BD maior e mais complexo) • Centralização é a maior vantagem. Vantagens da abordagem de banco de dados • Compartilhamento • Eliminação ou redução da redundância – Por algumas razões técnicas ou comerciais a redundância pode ser necessária. – Apesar disso, toda redundância precisa ser controlada (propagação de atualizações); • A inconsistência pode ser evitada (até certo ponto) – Informações incorretas ou contraditórias. • Suporte a transações • Manutenção da integridade – Restrições de integridades (regras de negócio). Vantagens da abordagem de banco de dados • Reforço à segurança – Restrições de segurança • Requisitos contraditórios podem ser equilibrados – Regras criadas para definir o que é melhor pra Organização – Ex: Acesso rápido para aplicações mais importantes • Os padrões podem ser reforçados – Padronização de representação de dados – Migração de dados entre sistemas Arquitetura de sistemas de BD • Introdução – Fornecer um arcabouço – Arquitetura proposta pelo ANSI/SPARC Study Group on Data Base Management Systems • Chamada Arquitetura ANSI/SPARC – Três níveis de arquitetura • Nível interno • Nível externo • Nível conceitual Nível interno Nível físico Mais “baixo nível” Mais próximo do meio de armazenamento Nível externo Nível lógico do usuário Mais próximo de usuários Como os dados são vistos pelos usuários Nível conceitual Nível lógico comunitário As vezes chamado de nível indireto, sem qualificação É um nível de simulação entre os outros dois Os três níveis da arquitetura(1) Os três níveis da arquitetura(2) Níveis e o sistema relacional Conceitual É definitivamente relacional Campos visíveis neste nível serão tabelas relacionais Operadores relacionais (Ex: restrição/seleção e projeção) Externo Tipicamente relacional ou algo muito próximo disso Interno Nenhuma relação com o modelo relacional SISTEMA RELACIONAL VISÃO do usuário Objetivo do sistema relacional Exemplo dos três níveis Arquitetura em detalhes Arquitetura em detalhes – nível externo • Qualquer usuário enxergará o BD por meio do nível externo (com exceção do DBA). • Cada usuário tem uma linguagem à sua disposição – Programador • Qualquer linguagem de programação – Usuário final • Linguagem de consulta ou de uso especial (formulários, menus, etc.) → aplicação ou sistema • Qualquer que seja a linguagem →incluirá uma sublinguagem de dados. Sublinguagem de dados • DSL (Data Sublanguage) • Subconjunto da linguagem completa relacionado de modo específico – objetos e operações de BD • É embutida na linguagem hospedeira • Exemplo de DSL: SQL – Uso do SQL • Uso interativo e de forma autônoma ou • Incorporada a outras linguagens como Java, C#, C++, etc. Boas práticas para construção do comando SQL • Os comandos SQL não fazem distinção entre minúscula e maiúscula, salvo quando o comando se apresenta entre aspas. • As palavras chaves não podem ser divididas ou abreviadas • Orienta-se digitar as cláusulas do comando em linhas separadas e, se possível, endentadas para melhor legibilidade. Linguagem + SQL DSL DDL e DML • DDL – Consiste nas construções declarativas da linguagem necessárias para se declararem objetos do BD. • DML – Consiste nas instruções executáveis da linguagem que transferem informações de e para o BD. Visão para ANSI/SPARC • O termo ANSI/SPARC para visão é visão externa. • Visão externa – Conteúdo do BD visto por algum usuário determinado (para este usuário a visão externa é o BD) – Exemplos • Visão do coordenador versus visão do professor com relação aos dados dos alunos. • Visão do coordenador versus visão do aluno com relação aos dados do professor. Esquema externo • Cada visão externa é definida por meio de um esquema externo. – Escrito com uso da parte de DDL da sublinguagem de dados do usuário (chamada de DDL externa) – Definição do mapeamento entre o esquema externo e o conceitual. O nível conceitual • Representação de todo o conteúdo de BD em uma forma abstrata em comparação ao formato do dado fisicamente armazenado. • Em geral, também é diferente de como um usuário em particular enxerga os dados. • Visão conceitual – Pretende ser uma visão de como os dados “realmente são”, isto é, independente da linguagem ou hardware utilizado. Visão conceitual • Consiste em muitas ocorrências de cada um dos vários tipos de registros conceituais. – Coleção de registros de diversas tabelas. – Não necessariamente é igual aos registros externos ou aos registros armazenados. Esquema conceitual • Visão conceitual é definida por meio do esquema conceitual. – Inclui definições de cada um dosvários tipos de registros conceituais. • É escrito com uso de outra linguagem de definição de dados (DDL conceitual). – Não deverá envolver quaisquer considerações sobre a representação física ou técnica de acesso (independência de dados). – Somente definições do conteúdo de informações. Resumindo • Então – A visão conceitual refere-se ao conteúdo total do BD e – O esquema conceitual é uma definição dessa visão. – Mas existem outros detalhes • Restrições de segurança e integridade, por exemplo • Alguns especialistas → Objetivo final → descrição de toda organização. Nível conceitual versus nível externo • Exemplo de visão dos dados • Imagine um BD muito simples com o objetivo de cadastrar objetos pessoais para que os mesmos possam ser emprestados ou alugados por amigos pessoais. Tabela (relação) Amigos – nível conceitual Tabela Objetos – nível conceitual Tabela Aluguel – nível conceitual Visão externa – exemplo 1 Visão externa – exemplo 2 Nível interno • Visão interna – Representação de mais baixo nível do BD por inteiro. – Muitas ocorrências de cada um dos vários tipos de registros internos. • Termo ANSI/SPARC para registro armazenado. Esquema interno • A visão interna é descrita por meio do esquema interno. – Define os diversos tipos de registros armazenados – Quais índices existem – Representação dos campos armazenados – Sequência física dos registros armazenados • Usa DDL interna. Mapeamentos • Mapeamento conceitual/interno – Chave para independência de dados física. • Mapeamento externo/conceitual – Chave para independência de dados lógica. • Mapeamento externos/externos Exercícios a) Defina Banco de dados b) Descreva os usuários de banco de dados c) Cite o nome de um sistema de banco de dados proprietário e um livre d) Defina SGBD e) Quais são os componentes de um SGBD? E dê um exemplo f) Cite vantagens da utilização do SGBD g) Qual a diferença entre independência de dados lógica e física? • Como acessar o material desta disciplina no SIA? • Após logar-se no SIA, acesse a opção Sala de Aulas Virtuais e em seguida clique em Minhas Disciplinas Presenciais • Você acessará o portal do aluno e em seguida deverá clicar em disciplinas. • Acesse a disciplina desejada (neste caso, como exemplo, a disciplina é Linguagem de Programação) e clique no ícone de seta dupla direcionada para baixo para expandir algumas opções. Em seguida acesse o ícone Biblioteca da disciplina. • O material disponibilizado pelo professor até o momento do acesso surgirá(no exemplo abaixo não há material, mas é por meio destes passos que você obtém acesso a ele). • Bibliografia – DATE, C. J. Introdução a sistemas de banco de dados. 7ª ed. Rio de Janeiro: Campus, 2000. – HEUSER, C. Projeto de Banco de Dados. Porto Alegre: Sagra Luzzato, 1998 (Série de Livros Didáticos, número 4). – SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. A. Sistema de banco de dados. 5ª ed. Rio de Janeiro: Campus, 2006 – ELMASRI, R.; NAVATHE, S., Sistemas de Banco de Dados. Pearson Education do Brasil, 4ª.Ed 2005.
Compartilhar