Banco de Dados I Introdução Prof. Dr. Joe da Siva
Apresentação: Quem sou? Joe da Siva (joe.dasiva@iffarroupiha.edu.br) Formação: Graduação Informática (URI/FW) - 2001 Mestre em Ciência da Computação (CIn/UFPE) - 2004 Doutor em Ciência da Computação (CIn/UFPE) -2008 Atuando na área de TI desde 1997 1. No Mundo do Trabaho: Estagiário Programador, Anaista, Coordenador, Gerente de Projetos Gerente de Tecnoogia da Informação (TI) 2. Na área acadêmica: Bosista de Iniciação Científica Professor desde 2001 Coordenador de Curso Coordenador do Pronatec/Boa-Formação Diretor de Pesquisa e Extensão 3. Atuamente: Professor do IFFarroupiha Campus FW e da UFSM Estudante!!...
Apresentação: Como Trabaharemos? Pano de Ensino Horário das Auas Avaiações PPI Projetos Site da Discipina www.joedasiva.com.br
Ementa Sistema de gerência de banco de dados (SGBD): Histórico e características. Modeos de dados. Modeo reaciona. Projeto de banco de dados: Modeagem Conceitua (MER). Transformação de entidade-reacionamento para reaciona. Normaização. Engenharia reversa de tabeas. Linguagem SQL: DDL; DML.
Objetivos Ao fina deste componente curricuar o auno deverá estar apto a, partindo de um probema rea e considerando os princípios e técnicas de projeto e modeagem de bancos de dados, modear e impementar um banco de dados utiizando uma ferramenta de modeagem e um SGBD Reaciona, aém de dominar os comandos SQL para definição e manipuação de dados.
Bibiografia Bibiografia Básica Date, C. J. Introdução a sistemas de bancos de dados / Rio de Janeiro, RJ : Esevier, 2004. 865 p. Emasri, Ramez Sistemas de banco de dados / 4. ed. São Pauo : Pearson Addison Wesey, 2005, 724 p. Siberschatz, Abraham Sistema de banco de dados / 3. ed. São Pauo, SP : Makron Books, 1999, 778 p. Bibiografia Compementar Gennick, Jonathan SQL : guia de boso / 2. ed. Rio de Janeiro : Ata Books, 2007. 166 p. Heuser, Caros Aberto Projeto de banco de dados / 6. ed. Porto Aegre, RS : Bookman, 2009, 282 p
O Contexto da Discipina no Curso
O Contexto da Discipina no Curso: Exempo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo Overdose de Informação
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo
O Contexto da Discipina no Universo http://dados.rs.gov.br/
O Contexto da Discipina no Universo http://dados.tce.rs.gov.br/
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
O Contexto da Discipina no Mundo do Trabaho
Mercado de TI (Brasi) 33 http://g1.gobo.com/jorna-da-gobo/noticia/2016/02/mercado-de-ti-e-um-dos-setores-que-nao-pararam-de-contratar-no-brasi.htm
Mercado de TI (Brasi) 34 http://computerword.com.br/anaistas-projetam-crescimento-de-29-no-mercado-brasieiro-de-ti-em-2017
A Discipina e a busca por respostas Por que as empresas sentem dificudades para descobrir que tipo de informação precisam ter em seus sistemas de informação? Como um sistema de gerenciamento de bancos de dados ajuda as empresas a mehorar a organização de suas informações?
A Discipina e a busca por respostas Como os principais tipos de modeos de bancos de dados afetam a maneira como as empresas podem acessar e utiizar informações? Quais são os requisitos gerenciais e organizacionais de um ambiente de banco de dados? Quais são as novas ferramentas e tecnoogias que tornam os bancos de dados mais acessíveis e úteis?
E então, por onde começar?
Termos e Conceitos de Organização de Arquivos Bit: Menor unidade de dados; dígito binário (0,1) Byte: Grupo de bits que representa um único caractere Campo: Grupo de paavras ou um número competo
Termos e Conceitos de Organização de Arquivos Registro: Grupo de campos reacionados Arquivo: Grupo de registros do mesmo tipo Banco de dados: Grupo de arquivos reacionados
Hierarquia em um Sitema de Computador
Termos e Conceitos de Organização de Arquivos Entidade: Pessoa, coisa, ugar, evento sobre o qua se mantém a informação Atributo: Descrição de uma entidade específica Campo-chave: Campo identificador usado para recuperar, atuaizar e ordenar registros
Entidades e Atributos
Processamento Tradiciona de Arquivos
Probemas do ambiente de Arquivos Tradiciona Redundância de dados Dependência programa-dados Fata de fexibiidade Baixo níve de segurança Fata de compartihamento e disponibiidade dos dados
Dado X Informação Dado: É um eemento/registro da informação. Informação: É o significado dos dados. O dado é fato, ee só se torna informação quando visto dentro de um contexto (transmitir agum significado às pessoas). A informação acrescenta ago ao conhecimento da reaidade de forma ta que possa ser interpretado peas pessoas. Informação = Dados + Contexto O tratamento dos DADOS dá origem a vários tipos de INFORMAÇÕES 45
Gerenciamento dos dados SGBD - Sistema de Gerenciamento de Banco de dados Consiste de uma coeção de dados interreacionados + um conjunto de programas para acessá-os Coeção de dados (BD) contém informações sobre uma determinada organização. Conjunto de programas responsáve peo sistema de gerenciamento (descrição, armazenamento, manipuação, integridade) Objetivo: prover um ambiente conveniente (fáci de usar) e eficiente (rápido e correto) para recuperar e armazenar informações do BD. 46
Evoução dos SGBDs 1ª Geração Sistemas de Arquivos SGBD Hierárquico SGBD em Rede 1ª Geração - Fim de 60 2ª Geração - Fim de 70 3ª Geração - Meados de 80 SGBD Orientado a Objetos SGDB Reaciona- Objeto 47 SGBD Reaciona 3ª Geração 2ª Geração
48 Atuamente
Evoução dos SGBDs Sistemas de arquivos: Principa característica é a repicação e isoamento de dados (ihas de informações) Apicações eram escritas para um determinado arquivo Para cada nova informação criava-se um novo arquivo, mesmo esta existindo em outros arquivos (redundância descontroada) Arquivos possuíam formatos diferentes EX: Sexo = M ou F e Sexo = 0 ou 1 Nome CHAR (50) e Nome CHAR (40) Em gera as apicações eram escritas em COBOL ou PL/1 49
Evoução dos SGBDs Sis. de Produção Sis. de Vendas Sis. de Compras Arq. de Produção Produto... Sis. de Produção Arq. de Vendas Produto X... Sis. de Vendas Arq. de Compras Produto... Sistemas de Arquivos Sis. de Compras Banco de dados Produto... 50 SGBDs
Evoução dos SGBDs SGBD Hierárquico: Foram os primeiros SGBDs (controe centraizado). Utiizavam um modeo que era inspirado nas hierarquias das grandes corporações da época Ex: IMS, UNIVAC 1100, CDC 6000, CYBER 70 e 170 Mário Av. S.Caros S.P. Sivia Av.D.Pedro Itu Rui Rua XV S.Caros 1234 55,00 7556 3.000,00 1333 600,00 51 7556 3.000,00 5512 350,00
Evoução dos SGBDs SGBD em Rede: Reconhecem a natureza dos dados como não hierárquica Permite definir associações menos restritivas EX: DBMS10, IDS II, DMS II e IMAGE Mário Av. S.Caros S.P. Rui Rua XV S.Caros 1234 55,00 1333 600,00 7556 3.000,00 Sivia Av.D.Pedro Itu 52 5512 350,00
Evoução dos SGBDs SGBD Reaciona Partiam de um modeo previamente definido Possui forte fundamento matemático Teoria dos conjuntos/ágebra reaciona Dados são representados segundo tabeas EX: MySQL, DB/2, POSTGRESQL, ORACLE, SQL-Server nome rua cidade nro-conta Mário Av. S.Caros S.P. 1234 Rui Rua XV S.Caros 1333 Rui Rua XV S.Caros 7556 Sivia Av.D.Pedro Itu 5512 Sivia Av.D.Pedro Itu 7556 53 nro-conta sado 1234 55,00 1333 600,00 5512 350,00 7556 3.000,00
Evoução dos SGBDs SGBD Orientado a Objetos Modeo mais natura para expressar a reaidade Maior integração Anaista X Usuário Suporte para modear reaidades compexas Permite maior produtividade Reutiização de SW Fexibiidade para suportar aterações de SW Características básicas: Abstração de dados e procedimentos (métodos) Encapsuamento Herança Poimorfismo Troca de mensagens 54
Evoução dos SGBDs SGBD Orientado a Objetos EX: O2, OBJECTSTORE, IRIS M1 Ciente A1,A2,...An M2 Troca de Mensagens M1 Conta A1,A2,...An M2 Mn... Mn... Mário, Av. S.Caros, SP, [1234] Rui, Rua XV, S.Caros, [1333, 7556] Sivia, Av. D. Pedro, Itu, [5512, 756] 55 1234, 55,00 1333, 600,00 5512, 350,00 7556, 3.000,00
Evoução dos SGBDs SGBD Orientado a Objetos - Considerações Não tem base teórica (formaismo) SGBD hierárquico baseado em árvore SGBD rede baseado em "grafo" SGBD reaciona baseado em "matemática dos conjuntos". Não existe inguagem padronizada como SQL Paradigma não foi muito bem aceito peo mercado. Reaciona-Objeto como soução. 56
Evoução dos SGBDs SGBD Reaciona-Objeto (ou Objeto-Reaciona) Usa de conceitos OO sobre estruturas reacionais Extensão de tipos básicos em SQL Objetos compexos em contexto SQL Herança em contexto SQL Ex: ORACLE 8/9, DB2/6000, ILUSTRA, CA-Ingres M1 Ciente A1,A2,...An M2 Conceitos de OO M1 Conta A1,A2,...An M2 Mn... Mn... 57
Antes de SGBD: Inconsistência e redundância de dados Dificudade de acesso aos dados Isoamento de dados Probemas de integridade Probemas de atomicidade Anomaias no acesso concorrente Probemas de segurança 58
Inconsistência e redundância de dados Já que arquivos e apicações são criados e mantidos por diferentes programadores, em gera, durante ongos períodos de tempo, é comum que os arquivos possuam formatos diferentes e os programas sejam escritos em diversas inguagens de programação. Ainda mais, a mesma informação pode ser repetida em diversos ugares (arquivos). Ainda, pode originar inconsistência de dados; isto é, as várias cópias dos dados poderão divergir ao ongo do tempo. 59
Dificudade de acesso aos dados Questão: Uma empresa precisa dos nomes de todos os cientes que residam no CEP 78733. Esta soicitação foi prevista no projeto do sistema? H1 - SIM OK! H2 - NÃO (mas existe uma apicação para gerar a reação de todos os cientes e seus endereços) S - separar manuamente os cientes H3 - NÃO (e não existe nada semehante) S - Escrever o programa necessário. H2 e H3 são, obviamente, insatisfatórias....dias depois é necessário obter quais cientes com sado superior a R$6.000,00. 60
Isoamento de dados Como os dados estão dispersos em vários arquivos, e estes arquivos podem possuir diferentes formatos, é difíci escrever novas apicações para recuperação apropriada dos dados. 61
Probemas de integridade Os vaores dos dados atribuídos e armazenados em um BD devem satisfazer a certas restrições para manutenção da consistência. Ex: O sado de uma conta bancária não pode ser menor do que um determinado vaor (por exempo: $5,00). Os programadores determinam o cumprimento desta restrição através da adição de código apropriado. Entretanto, quando aparecem novas restrições, é difíci aterar todos os programas para incrementá-as. O probema é ampiado quando as restrições atingem diversos itens de dados em diferentes arquivos. EX: Cientes com mais de 10 anos no banco é isento da taxa de manutenção de conta 62
Probemas de atomicidade Um sistema computaciona está sujeito a fahas. Em muitas apicações é crucia assegurar que, uma vez detectada uma faha, os dados sejam savos em seu útimo estado consistente. Ex: Transferir $50 da conta A para B. Se ocorrer faha durante sua execução, é possíve que os $50 sejam debitados da conta A sem serem creditados da B, criando um estado inconsistente no banco de dados. É essencia para a consistência do BD que ambos (débito e crédito) ocorram ou nenhum dees seja efetuado. Isto é, a transferência de fundos deve ser uma operação atômica; deve ocorrer por competo, ou não ocorrer. 63
Anomaias no acesso concorrente Acesso concorrente impica no aumento de desempenho do sistema, mas operações neste tipo de ambiente podem resutar em dados inconsistentes. Ex: o sado de uma conta bancária A é de $500. Dois cientes creditam, respectivamente, $50 e $100 desta conta. Se estas operações ocorrerem simutaneamente pode ocorrer uma inconsistência no estado do BD. Pois dependendo de qua dees registre seu resutado primeiro, o sado da conta A será $550 ou $600, ao invés do vaor correto de $650. 64
Probemas de segurança Nem todos os usuários de banco de dados estão autorizados a acessar todos os dados. Ex: num sistema bancário, os funcionários do departamento pessoa devem ter acesso apenas ao conjunto de pessoas que trabaham no banco. Ees não devem ter acesso às informações dos cientes do banco (permissão de acesso por tipo de usuário) 65
Abstração de dados O principa objetivo de um SGBD é simpificar a interação do usuário com o sistema. Para isso este deve prover uma visão abstrata dos dados, ou seja, omitir detahes de como os dados são armazenados e mantidos. Níveis de abstração providos por um SGBD: Níve de Visão mais ato níve de abstração; visão de cada usuário do DB; descreve partes do banco de dados. Níve Lógico níve médio de abstração; visão dos administradores de DB; descreve quais dados estão armazenados no BD e os inter-reacionamentos entre ees. Níve Físico mais baixo níve de abstração; visão dos desenvovedores de DB; descreve como os dados estão de fato armazenados no disco rígido 66
Níveis de abstração Observe esta decaração de um registro em Pasca: Type Ciente = record Nome : string; RG: string; Endereço : string; end; No níve de visão, os usuários do computador vêm um conjunto de programas que escondem os detahes dos tipos de dados. No níve ógico, cada registro é descrito por um tipo definido, como iustrado no segmento do código. No níve físico, um registro é descrito como um boco consecutivo de memória (por exempo, paavra ou bytes). O compiador esconde este níve de detahes dos programadores. 67
Esquemas e Instâncias Esquema é o projeto gera do BD (a definição estrutura dos seus dados) os esquemas são aterados com pouca freqüência Instância do BD é o conjunto de informações contidas em determinado BD em um dado momento Esquema = definição do tipo de uma variáve Instância = vaor de uma variáve Sistemas de BD possuem esquemas, referentes aos níveis de abstração. Níve Visão = Subesquemas Níve Lógico = Esquema Lógico Níve Físico = Esquema Físico. 68
Esquemas e Instâncias Os SGBDs dão suporte a um esquema físico, um esquema ógico e vários subesquemas. Visão 1 = Subesquema 1 Visão 2 = Subesquema 2... Visão n = Subesquema n Esquema Lógico = Níve Lógico Esquema Físico = Níve Físico 69
Independência de Dados Capacidade de modificar a definição dos esquemas em determinado níve, sem afetar o esquema do níve superior Independência física de dados : modifica o esquema físico sem que com isso, quaquer programa apicativo precise ser reescrito (ocasionais para aumento de desempenho). Independência ógica de dados : modifica o esquema ógico sem que, com isso, quaquer programa apicativo precise ser reescrito (sempre que uma estrutura ógica do BD é aterada - é mais difíci de ser obtida). A independência Lógica é mais difíci de ser acançada do que a Física. Pois, os programas são muito dependente do Esquema Lógico. 70
Modeo de Dados Representa conceituamente a estrutura do BD Os modeos de dados descrevem: Os reacionamentos entre os dados, A semântica dos dados e As regras de consistência Existem os seguintes modeos de dados: Modeos com base em objetos Também Conhecido como apenas Modeo Conceitua Modeos com base em registros Também Conhecido como apenas Modeo Lógico Modeos físicos 71
Modeos com base em Objetos Descrição mais abstrata da reaidade Não contém detahes de impementação Independe do tipo de SGBD usado É o ponto de partida do projeto do BD EX: ER ER-X OMT UML Entidade-Reacionamento Orientado a Objetos/Objeto Reaciona
Modeo Entidade-Reacionamento (ER) Consiste de uma coeção de objetos básicos chamados entidades, e em reacionamentos entre esses objetos. Entidade = objeto com um conj. de atributos específicos e distinguíve Reacionamento = associação entre mais de uma entidades Mutipicidade = Regra de consistência (quantidade de reacionamentos) Atributos nome rua cidade Mutipicidade número sado Dt _ Nasc ciente * ciente * conta conta Reacionamento 73 Entidades
Modeo UML Orientado a Objeto Consiste de uma coeção de objetos básicos agrupados em casses, e em reacionamentos entre essas casses. Casse = estrutura ógica formada por um conj. de atributos e operações Reacionamento = associação entre mais de uma casse Mutipicidade = Regra de consistência (quantidade de reacionamentos) Atributos Métodos nome rua cidade Dt _ nasc... Ciente obterendereço () obteridade ()... Reacionamento Ciente/Conta * * Mutipicidade número sado... Conta creditar() debitar()... 74
Modeos com base em Registros Especificam a representação/decaração dos dados O BD é estruturado em registros de formato fixo e de diversos os tipos Cada registro define número fixo de campos (atributos), e cada campo possui tamanho fixo (simpifica a impementação do BD no níve físico) Depende do SGBD EX: Hierárquico Rede Reaciona 75
Modeo Hierárquico Representados por um conjunto de registros e as reações entre estes registros são representadas por inks (ponteiros) Registros são organizados no BD por uma estrutura pai-fiho do tipo árvore, onde: nós = registros arcos = igações entre registros Probema: não expressa adequadamente a reaidade existente só é adequado para probemas hierárquicos 76
Modeo Hierárquico Exempo: Mário Av. S.Caros S.P. Sivia Av.D.Pedro Itu Rui Rua XV S.Caros 1234 55,00 7556 3.000,00 1333 600,00 7556 3.000,00 5512 350,00 77
Modeo de Rede Semehante ao anterior, entretanto os registros são organizados no BD por um conjunto arbitrário de gráfos Probema: Navegação Expícita O programador tem que conhecer as igações existentes na bases de dados independência de dados fica prejudicada, pois a criação/ eiminação de igações impica em aterações de código 78
Modeo de Rede Exempo: Mário Av. S.Caros S.P. Rui Rua XV S.Caros 1234 55,00 1333 600,00 7556 3.000,00 Sivia Av.D.Pedro Itu 5512 350,00
Modeo Reaciona Usa um conjunto de tabeas para representar tanto os dados como a reação entre ees. Cada tabea possui mútipas counas e cada couna possui um nome único nome rua cidade nro-conta Mário Av. S.Caros S.P. 1234 Rui Rua XV S.Caros 1333 Rui Rua XV S.Caros 7556 Sivia Av.D.Pedro Itu 5512 Sivia Av.D.Pedro Itu 7556 80 nro-conta sado 1234 55,00 1333 600,00 5512 350,00 7556 3.000,00
Exempo
Modeos Físicos de Dados São usados para descrever as diferentes Estruturas de Memória, e portanto bastante semehante a eas. Usados para descrever os dados no níve mais baixo modeo unificado (unifying mode) modeo de partição de memória (frame-memory mode) Tratam dos aspectos de impementação do SGBD A tendência dos produtos modernos é cada vez mais esconder o modeo físico Os modeos Físicos não são o foco desta discipina 82
Linguagens de Banco de Dados Tipos de inguagens: 1. Específica para os esquemas do BD (Linguagens de Definição de Dados) Do ingês: Data Definition Language - DDL 2. Para expressar consutas e atuaizações (Linguagem de Manipuação dos Dados) Do ingês: Data Manipuation Language - DML Integrada com a DDL 83
Linguagens de Definição de Dados - DDL Para expressar a especificação do esquema do BD O resutado da compiação dos parâmetros DDLs é um conjunto de tabeas que são armazenadas em um arquivo especia chamado dicionário de dados Dicionário de dados: arquivo de metadados (dados a respeito de dados) - no SGBD o diretório é consutado antes que o dado rea seja modificado Ex:create tabe, create view, drop tabe, drop view 84
Linguagem de Manipuação dos Dados-DML Viabiiza o acesso (manipuação) dos dados de forma compatíve ao modeo de dados apropriado Manipuaçã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 Linguagem de consuta (Query anguage) É uma parte da DML que envove busca de informações Embora tecnicamente incorreto, DML e Linguagem de consuta são usadas como sinônimo 85
Linguagens de Banco de Dados DDL+DML não são suficientes para desenvover apicações competas Fata de interface gráfica com o usuário Impossibiidade para acessar outros sistemas Dificudade para desenvover procedimentos compexos Apicações competas são desenvovidas em conjunto com inguagens de programação contendo chamadas ao SGBD Uso de APIs (Appication Program Interface) ODBC JDBC OLE DB ADO 86
Quem são as pessoas que idam com SGBDs? Impementadores de SGBDs Trabaham para companhias que fabricam os SGBDs IBM, Orace, Microsoft... Programadores de Apicativos Escrevem pacotes de programas que faciitam a vida dos usuários finais. Não interferem com a parte física dos dados. Utiizam apenas o esquema externo. Administradores de Banco de Dados (DBA) Projetam os esquemas conceituais e físicos dos dados Projetam grande parte do esquema externo. Segurança e autorização Usuários finais Vêm de diversas áreas- na maioria são eigos em tecnoogia de BD Utiizam apicativos escritos por programadores de apicativos de BD Existem usuários mais sofisticados que escrevem suas próprias consutas em SQL.
Administrador de Banco de Dados Administrador de BD = DBA (DataBase Administrator) Definição e atuaização do esquema Definição do mecanismo/método de acesso Fornecer autorização de acesso ao sistema Especificação de regras de integridade Controe centraizado tanto dos dados quanto dos programas de acesso a estes dados 88
Exempos de Apicações Sistema Acadêmico SIA3F 89
Ferramentas Utiizadas na Discipina 1) SGBD MySQL 2) MySQL Workbench 90
Exercícios 1) Faça uma expanação sobre Dado X Informação 2) Com suas paavras expique o que é um SGBD 3) Quais as principais diferenças entre um sistema de processamento de arquivo e um SGBD? 4) Expique os principais probemas que ocorriam antes do advento dos SGBDs. 6) Faça uma expanação sobre os modeos de dados estudados. 7) Reate sobre os principais tipos de inguagem de um SGBD? 8) O que são metadados e qua o reacionamentos destes com o dicionário de dados. Expique. Instae em seu computador o SGBD Mysq e o MySQL Workbench. 91