Aula 00 Curso Regular de Banco de Dados e Business Intelligence - Com videoaulas Professor: Victor Dalton 00000000000 - DEMO Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 AULA 00: Banco de Dados (1ª parte) SUMÁRIO PÁGINA Apresentação Cronograma 1.Bancos de Dados: Conceitos Básicos 1.1 Definições 1.2 SGBD 1.3 Trabalhadores envolvidos 1.4 Categorias de modelos de dados 1.5 Arquitetura três esquemas de um SGBD 1.6 Tipos de modelos de dados Considerações Finais 2 3 4 4 6 7 8 10 12 15 Olá a todos! E sejam bem-vindos ao projeto Curso Regular de Banco de Dados e Business Intelligence! O nosso objetivo é cobrir o conteúdo de Banco de Dados de Business Intelligence tradicionalmente cobrado em todos os concursos de Tecnologia da Informação, bem como em concursos da Área Fiscal (seja como Tecnologia da Informação, ou dentro da área de Informática). Destaco, também, que o nosso curso também possuirá videoaulas, que auxiliarão o entendimento do conteúdo, e será repleto de exercícios das principais bancas do mercado, como CESPE, FCC, ESAF, CESGRANRIO e FGV, dentre outras. Observação importante: este curso é protegido por direitos autorais (copyright), nos termos da Lei 9.610/98, que altera, atualiza e consolida a legislação sobre direitos autorais e dá outras providências. 00000000000 Grupos de rateio e pirataria são clandestinos, violam a lei e prejudicam os professores que elaboram os cursos. Valorize o trabalho de nossa equipe adquirindo os cursos honestamente através do site Estratégia Concursos ;-) Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 1 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 APRESENTAÇÃO Permitam-me que eu me apresente. Eu sou Victor Dalton Teles Jesus Barbosa. Minha experiência em concursos começou aos 15 anos, quando consegui ingressar na Escola Preparatória de Cadetes do Exército, em 1999. Cursei a Academia Militar das Agulhas Negras, me tornando Bacharel em Ciências Militares, 1º Colocado em Comunicações, da turma de 2003. Em 2005, prestei novamente concurso para o Instituto Militar de Engenharia, aprovando em 3º lugar. No final de 2009, me formei em Engenharia da Computação, sendo o 2º lugar da turma no Curso de Graduação. Decidi então mudar de ares. Em 2010, prestei concursos para Analista do Banco Central (Área 1 – Tecnologia da Informação) e Analista de Planejamento e Orçamento (Especialização em TI), cujas bancas foram a CESGRANRIO e a ESAF, respectivamente. Fui aprovado em ambos os concursos e, após uma passagem pelo Ministério do Planejamento, optei pelo Banco Central do Brasil. Em 2012, por sua vez, prestei concurso para o cargo de Analista Legislativo da Câmara dos Deputados, aplicado pela banca CESPE, e, desde o início de 2013, faço parte do Legislativo Federal brasileiro. Aqui no Estratégia Concursos, já ministrei e ministro cursos para vários certames, como CGU, Receita Federal, ICMS/PR, ICMS/SP, ICMS/RJ, ICMS/MS, Banco Central, MPU, IBAMA, ANS, Ministério da Saúde, Polícia Federal, MPOG, PCDF, PRF, TCE-RS, AFT, ANCINE, dentre outros. Além disso, também ministro aulas presenciais em diversos Estados, cujo feedback dos alunos tem me impulsionado a continuar cada vez mais a ministrar aulas. 00000000000 Pois bem, e como serão distribuídas as nossas aulas? Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 2 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 CRONOGRAMA Estamos na aula 00. Aula 00 (01/12/2013) Banco de Dados: conceitos básicos. Níveis abstração. Tipos de modelos de dados. SGBD. Arquitetura três esquemas. Aula 01 (14/12/2013) Modelo Entidade-Relacionamento. Modelo Cardinalidade, restrições de integridade, entidades, atributos, tabelas, views. de relacional. Aula 02 (28/12/2013) Business Intelligence: definição. Data Warehouse, Data Mart e Data Mining: conceitos básicos. E, não se esqueça, teremos videoaulas para explicar toda a matéria! 00000000000 Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 3 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 Bancos de Dados 1. BANCOS DE DADOS: CONCEITOS BÁSICOS 1.1 Definições Antes do estudo de Banco de Dados propriamente dito, cabe destacar a diferença entre dado, informação e conhecimento. Um dado é uma informação quantificada. Ex: Paulo tem 23 anos. Uma informação é uma abstração produzida a partir dos dados. Ex: Muitos dos nossos clientes são jovens (informação), uma vez que 80% dos nossos clientes cadastrados possuem entre 18 e 25 anos (dado). Conhecimento, por sua vez, envolve uma abstração em um nível mais profundo, tomando por base os dados e as informações, como forma de subsidiar decisões. Ex: O nosso produto atrai muitos jovens (conhecimento extraído com base em dados e informações). Precisamos enfatizar nosso marketing nesse público alvo, ou precisamos modificar nosso produto para atingir outras faixas etárias (decisões de negócio), etc. Veremos mais sobre produção de conhecimento em Sistemas de Apoio à Decisão. Entendidos esses aspectos, podemos responder o que é Banco de Dados. Acredito que você já tenha uma “desconfiança” do que seja um banco de dados. Entretanto, a definição correta de banco de dados gira em torno de duas ideias chave: relacionamento e finalidade. Um banco de dados é um conjunto de dados relacionados com uma finalidade específica. Esta finalidade pode a produção de informação, para determinado público alvo (uma empresa, ou um órgão público, por exemplo), bem como suportar um negócio (como o estoque de produtos de um fornecedor, ou um cadastro de funcionários, ou tudo isso junto). Eu costumo brincar, e acho que isso ajuda a memorizar, que não se deve confundir Banco de Dados com “Bando de Dados”. Dados desorganizados não servem para nada; um conjunto dados que ser relacionam, com alguma finalidade, esses sim compõem um Banco de Dados. 00000000000 Bancos de dados, normalmente, são a “base” de um sistema, ou software. Um sistema de venda de produtos online, por exemplo, provavelmente possui em seu banco de dados uma vasta quantidade de registros de clientes e produtos. Esses dados provavelmente relacionam-se através dos pedidos, que Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 4 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 devem conter dados dos clientes e dos produtos. Os pedidos também serão dados. Começou a visualizar? Não se preocupe. Até o fim dessa apostila, você vai compreender. Nossa próxima definição importante é a de Esquema de Banco de Dados. Um esquema do banco de dados é uma coleção de objetos de um banco de dados que estão disponíveis para um determinado usuário ou grupo. Os objetos de um esquema são estruturas lógicas que se referem diretamente aos dados do banco de dados. Eles incluem estruturas, tais como tabelas, visões, seqüências, procedimentos armazenados, sinônimos, índices, agrupamentos e links de banco de dados. Falaremos mais sobre esses elementos ao longo da apostila, fique tranquilo. Ou seja, ao se elaborar um sistema, seu projeto de banco de dados é idealizado em um esquema (como a figura acima). Falei, pouco antes, que os softwares normalmente estão “em cima” de um Banco de Dados. O esquema é essa ferramenta utilizada para a representação do banco como um todo, podendo servir tanto para facilitar o entendimento do Banco de Dados como para implementar o próprio Banco de Dados. Com base no esquema acima, por exemplo, um Administrador de Dados já consegue criar o Banco. Visualize a imagem acima, veja as tabelas e os relacionamentos, e não se incomode se estiver entendendo pouco ou quase nada. Iremos ver e rever essa imagem, explicando os detalhes dela aos poucos. Tudo bem? 00000000000 Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 5 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 1.2 SGBD Imagine agora um sistema de uma grande vendedora de produtos online, ou mesmo o sistema de vendas de uma grande companhia aérea. Essas empresas vendem produtos e serviços por segundo, para usuários distribuídos geograficamente pelo mundo inteiro. Deste simples exemplo, percebe-se que Bancos de Dados precisam de gerenciamento próprio, e eficiente, para coordenar um volume gigantesco de operações simultâneas. Para tal, existem os Sistemas Gerenciadores de Bancos de Dados. O SGBD é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados. Seu principal objetivo é retirar da aplicação cliente (o sistema da empresa propriamente dito) a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais a interface é constituída pelas APIs (Application Programming Interface) ou drivers do SGBD, que executam comandos na linguagem SQL (Structured Query Language). Certamente você já ouviu falar de alguns SGBDs, como o Oracle, o IBM DB2, o Microsoft SQL Server, MySQL, ou até mesmo o PostgreSQL, que é gratuito. Via de regra, os SGBDs são ferramentas caríssimas, da ordem de milhares de dólares. Algumas de suas vantagens são: Controle de redundância: quando os Bancos de Dados precisam ser replicados em mais de um lugar, o SGBD evita a inconsistência das diferentes bases de dados; Restrição a acesso não autorizado: em Bancos de Dados com diferentes níveis de permissão de acesso, o SGBD realiza o controle dos diversos níveis de permissão; Backup e restauração: o Sistema de Banco de Dados deve ser tolerante a falhas, ou seja, o SGBD deve ser capaz de voltar a um estado anterior à falha, a despeito de falhas de hardware ou software; Forçar as restrições de integridade: os relacionamentos entre dos dados são implementados por meio de restrições de integridade. Será visto mais adiante. À “união” de um Sistema Gerenciador de Banco de Dados com o seu respectivo Banco de Dados é dado o nome de Sistema de Banco de Dados. 00000000000 Instalar e manter Sistemas de Bancos de Dados carregam consigo alguns ônus intrínsecos. São eles: Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 6 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 1.3 Custos: além do preço elevado das ferramentas de SGBD, manter um Sistema de Banco de Dados implica em hardware, software e pessoal especializados; Gerenciamento Complexo: o Sistema necessita interfacear com diferentes tecnologias, afetando os recursos e cultura da empresa; Dependência do fornecedor: o investimento inicial alto tende a “prender” o cliente. Modificar um SGBD é oneroso e complexo; Manutenção e atualização: como todo software, o SGBD deve ser mantido atualizado. Além disso, periodicamente surgem novas versões, com mais funcionalidades, “exigindo” substituições periódicas, com novos custos de hardware, software e treinamento de pessoal. Trabalhadores envolvidos Sistemas de Bancos de Dados são projetados, administrados e utilizados por diversos profissionais. Sem exageros, pode-se visualizar um “ciclo de vida” para um Sistema de Banco de Dados, com a participação de diversos personagens. São eles, segundo Elmasri e Navathe (2006): Projetista do Banco de Dados – os idealizadores do banco. Conversam com os usuários para especificar requisitos e modelam conceitualmente o banco; Administrador do Banco de Dados – implementam o banco e cuidam dele durante seu ciclo de vida; Usuário do Banco de Dados (ou Usuário Final) – especificam suas necessidades, antes do BD, e o utilizam após sua criação. Atenção! 00000000000 Date (2011) acrescenta a figura do Administrador de Dados, que seria uma pessoa que toma decisões estratégicas e de normas com relação aos dados da empresa. Importante, quando tratar-se de personagens envolvidos, prestar atenção nesse detalhe, tentar “adivinhar” a bibliografia do enunciado, para não confundir o Administrador de Dados com o Administrador de Banco de Dados. Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 7 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 1.4 Categorias de modelos de dados Projetar um banco de dados, como você provavelmente deve imaginar, é uma atividade que requer planejamento e organização. Didaticamente, pode-se dividir este tarefa em etapas. A primeira fase do projeto do banco é o levantamento e análise de requisitos, que na prática, é a especificação das necessidades do usuário do banco. Entrevista-se o usuário do banco para entendimento e documentação dos seus requisitos de dados. A segunda fase é o projeto conceitual, em que já se criam descrições detalhadas de tipos de entidades, relacionamentos, atributos e restrições. A modelagem conceitual empregada baseia-se no mais alto nível e deve ser usada para envolver o cliente. Os exemplos de modelagem de dados visto pelo modelo conceitual são mais fáceis de compreender, já que não há limitações ou aplicação de tecnologia específica. O modelo normalmente utilizado é o modelo entidade-relacionamento, com a construção do Diagrama de Entidade e Relacionamento. Este diagrama é a chave para a compreensão do modelo conceitual de dados. Cria-se o que chamamos de “mini-mundo”, a observação da realidade mapeada dentro do sistema que se deseja desenvolver. 00000000000 Ilustração de modelagem conceitual usando o Diagrama E-R. Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 8 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 Posteriormente ocorre as especificações das necessidades funcionais, depreendidas do próprio projeto conceitual. Caso exista algum impedimento funcional para a implementação do banco, talvez seja necessário voltar ao projeto conceitual e realizar algumas modificações. Em seguida aparece o projeto lógico, ou mapeamento do modelo de dados. A modelagem lógica (ou representacional, ou de implementação), por sua vez, já realiza o mapeamento do esquema conceitual para o modelo de dados que será usado. O modelo de dados de implementação normalmente é o modelo de dados relacional, que também é importantíssimo, muito cobrado em provas e será bastante abordado nos exercícios. Tal projeto consolidará a escrita do script do banco, com a criação do seu esquema. Modelagem relacional: ilustração com tabelas e atributos 00000000000 Por fim, temos o projeto físico, durante a qual são definidas as estruturas de armazenamento interno, índices, caminhos de acesso e organizações de arquivo para os arquivos do banco de dados. Já passa a depender de regras de implementação e restrições tecnológicas. Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 9 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 Figura: Do modelo conceitual ao físico(MAXEY,2002) Dica do professor: entender as categorias de modelos de dados é fundamental para a contextualização do modelo relacional, que é o assunto da nossa próxima aula! 1.5 Arquitetura três esquemas de um SGBD A arquitetura três esquemas é uma outra abordagem, que ilustra essa separação entre usuário e aplicação. Nesta arquitetura, os esquemas podem ser descritos em três níveis: 00000000000 Arquitetura três esquemas, Elmasri e Navathe (2006) Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 10 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 Nível externo: abrange os esquemas externos, ou visões de usuário. Cada esquema descreverá apenas a visão pertinente de cada usuário a respeito do Banco de Dados, ocultando o restante. Por exemplo, para um aluno, de um sistema de aulas online, somente determinada parte do BD lhe é relevante, provavelmente relacionada aos cursos que realiza. Para um administrador financeiro desse sistemas, por sua vez, aspectos administrativos serão mais relevantes, relacionados aos pagamentos dos cursos e de pessoal. Nível conceitual: possui um esquema conceitual, que descreve o banco de dados como um todo. Oculta detalhes do armazenamento físico, enfatizando entidades, tipos de dados e restrições. Nível interno: apresenta um esquema interno, descrevendo a estrutura de armazenamento físicos do banco de dados. Atenção! Não confunda os esquemas com os modelos! Na verdade, é possível até realizar algumas associações, pois alguns modelos são mais adequados para representar alguns esquemas. Veja a associação a seguir: Nível externo – Modelo conceitual, Modelo relacional Nível conceitual – Modelo relacional Nível interno – Modelo físico Eu nunca vi questões de prova traçando essa comparação, mas é importante que você não confunda o nível conceitual com o modelo conceitual. O nível conceitual é um nível intermediário na arquitetura três esquemas, enquanto o modelo conceitual é um modelo de alto nível nas categorias de modelos de dados. Normalmente, as questões sobre categorias ou esquemas são um fim em si mesmo, logo, basta “chavear o disjuntor” para não haver confusão. Fique de olho! Enfim, fica a ideia de que o modelo relacional pode ser utilizado tanto para representações do nível externo quanto do nível conceitual. 00000000000 1.5.1 Independência lógica e independência física dos dados Dois conceitos relacionados à arquitetura três esquemas que, não raro, aparecem em questões de concursos são a independência lógica e a independência física dos dados. Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 11 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 Independência lógica é a capacidade de alterar o esquema conceitual sem precisar modificar os esquemas externos. Independência física é a capacidade de alterar o esquema interno sem precisar modificar o esquema conceitual. Esses esquemas e seus respectivos mapeamentos são guardados no catálogo do banco de dados. Ele será visto na próxima aula. 1.6 Tipos de modelos de dados Apoiando a estrutura de um banco de dados está o modelo de dados: uma coleção de ferramentas conceituais para descrever dados, relações de dados, semântica de dados e restrições de consistência. Um modelo de dados oferece uma maneira de descrever o projeto de um banco de dados no nível físico, lógico e de visão. Existem vários modelos de dados diferentes. Vejamos alguns: Modelo hierárquico: O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados. Nele, os registros são conectados em uma estrutura de dados em árvore, similar a uma árvore invertida (ou às raízes de uma árvore). Neste modelo, uma ligação é uma associação entre dois registros. O relacionamento entre um registro-pai e vários registros-filhos possui cardinalidade 1:N, ou 1:1, sendo N =1. Os dados organizados segundo este modelo podem ser acessados segundo uma sequência hierárquica com uma navegação do topo para as folhas e da esquerda para direita. Um registro pode até estar associado a vários registros diferentes, desde que seja replicado. 00000000000 Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 12 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 Neste exemplo, perceba que os registros da tabela empregado possuem hierarquia direta em relação aos registros da tabela departamento. O modelo hierárquico possui muitas limitações. Ele pode ser útil para modelar esquemas fortemente hierárquicos (como classificações para espécies dos reinos animal e vegetal, corporações, hierarquias governamentais, etc.), mas apresenta limitações quando representa modelos não-hierárquicos. Isto provocou o surgimento do modelo em rede. Modelo em rede: o modelo em rede acabou eliminando a hierarquia, pois passou a permitir que, em tese, cada registro filho pudesse ser ligado a mais de um registro pai. Nesse caso, a estrutura em árvore se desfaz, e passa a se assemelhar a uma estrutura em grafo. Relacionamentos N:M também passam a ser permitidos (lembrando que o relacionamento é estabelecido entre registros). 00000000000 Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 13 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 Perceba que, neste modelo, é possível colocar um empregado vinculado a mais de um departamento, o que não era possível no modelo hierárquico. Os modelos de dados em rede e hierárquicos precederam o modelo de dados relacional, que é o mais utilizado atualmente. São muito pouco utilizados nos dias de hoje, a não ser em bancos de dados antigos que ainda estejam em vigor. Modelo relacional: O modelo relacional usa uma coleção de tabelas para representar os dados e as relações entre eles. Foi o modelo que eu utilizei para explicar os conceitos básicos de banco de dados, e é o modelo mais utilizado (e cobrado em provas). Cada tabela possui diversas colunas, e cada coluna possui um nome único. Tabelas também são chamadas de relações.(Deixei isso pra depois de propósito: não confunda relação com os relacionamentos entre as tabelas). Cada tabela contém tuplas. Cada tupla possui um número fixo de campos, ou atributos. As colunas das tabelas correspondem aos atributos do tipo de registro. Este modelo é o mais utilizado na fase de projeto lógico do BD. Modelo Entidade/Relacionamento: O modelo de EntidadeRelacionamento (E-R) é baseado na percepção de um mundo real que consiste em uma coleção de objetos básicos, chamados entidades, e os relacionamentos entre esses objetos (existem autores que falam em relação para descrever relacionamentos. Preste atenção em uma eventual questão de prova, para saber o que a banca quer). Uma entidade é uma “coisa” ou “objeto” no mundo real que é distinguível dos outros objetos (como pessoa, ou carro). É um modelo mais alto nível, empregado na fase do projeto conceitual, que é anterior à fase do projeto lógico, no qual se utiliza o modelo relacional. Também cai em provas. Modelo de dados orientado a objetos: É uma extensão do modelo ER com noções de encapsulamento de identidade do objeto (isso será visto em programação). 00000000000 Modelo de dados objeto-relacional: Combina características do modelo relacional com o modelo orientado a objetos. P.S: Não se surpreenda em ter visto os modelos relacional e entidade relacionamento também neste tópico. Os tipos de modelos de dados apresentados não deixam de ter um caráter histórico, refletindo a evolução dos modelos ao longo do tempo. Por isso, os modelos relacional e E-R acabaram se consolidando nas categorias vistas anteriormente. Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 14 de 15 Curso Regular de Banco de Dados e Business Intelligence Prof Victor Dalton Aula 00 CONSIDERAÇÕES FINAIS E chegamos ao final da aula demonstrativa! A continuação dessa aula, abordando o modelo relacional, a bateria de exercícios correspondente e a videoaula completa do assunto estarão disponíveis na próxima aula. Espero reencontrar você, como um aluno efetivo. Até a próxima! Victor Dalton 00000000000 Prof. Victor Dalton www.estrategiaconcursos.com.br 00000000000 - DEMO 15 de 15