Histórico Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Sistemas Integrados: racionalização de processos, manutenção dos dados. Sistemas de Informação: racionalização de processos, racionalização de dados. Histórico O desenvolvimento da teoria de Banco de Dados ajudou sobretudo na independência de dados, ou seja, qualquer mudança na estrutura física ou na estratégia de acesso não implica em alteração nos aplicativos que utilizam tal dado. Banco de Dados Definição Coleção de dados inter-relacionados Conjunto de dados estruturados que são confiáveis, coerentes e compartilhados por usuários que têm necessidade de informações diferentes. Coleção compartilhada de dados logicamente relacionados e da descrição destes dados que são projetados para satisfazer as necessidades de informação de uma organização. Histórico dos Bancos de Dados 1950 – 1960: Fitas magnéticas usadas para armazenamento de dados Atualizações: lia de uma fita e escrevia as modificações em uma nova fita 1960 – 1970: Início do uso dos discos rígidos Início dos bancos de dados relacionais Histórico dos Bancos de Dados Década de 80: Início dos bancos de dados comerciais: IBM, DB2, Oracle, Ingres, entre outros Início dos bancos de dados OO, paralelos e distribuídos Início década de 90: Linguagem SQL Início dos bancos de dados de apoio à decisão Histórico dos Bancos de Dados Final da década de 90: Crescimento da www Adaptação dos BDs à Web Disponibilidade 7 dias por semana, 24 horas por dia Início de 2000: Surgimento da XML Objetivos dos BDs Independência dos dados Controle da Inconsistência e Redundância dos dados Compartilhamento dos Dados Controle de Acesso – Deve dispor de recursos que possibilitem selecionar a autoridade de cada usuário. Interfaceamento – Deverá disponibilizar formas de acesso gráfico. Objetivos dos BDs Privacidade dos dados Segurança Lógica e Física Tratamento de Concorrência Integridade dos dados Vantagens dos Bancos de Dados Vantagens em relação aos sistemas de arquivos: é compacto é rápido (recuperação e manutenção dos dados) menos trabalho braçal fluxo corrente (disponibilidade de informações a qualquer momento) controle centralizado Além de todas as vantagens dos BD´s citadas anteriormente Vantagens: redução ou eliminação da redundância de dados; manutenção da integridade dos dados; redução da perda de espaço de armazenamento; acesso ao dado através de uma linguagem de consulta; estabelecimento de padrões; aplicação de restrições de segurança. Desvantagens: instalação e manutenção são mais caras; a falha de um componente do sistema integrado pode parar todo o sistema. Conceitos Básicos - BD Um campo é a unidade básica de uma tabela. Possui um nome, tipo e tamanho. Um dado pode ser definido como sendo o valor do campo quando é armazenado no Banco de Dados; Ex.: Nome, Telefone, Salário.... Ex.: Jose, 2228-4040, R$ 450,00 .... Tabela Lógica: União de linhas e colunas para armazenamento de dados dos sistemas. Tabela Aluno Conceitos Básicos - BD CAMPOS Nome RA Idade Carlos 25478 25 Maria 12568 28 Dados Conceitos Básicos - BD Registro: coleção de itens de dados ex.: um registro de funcionários um registro é dividido em vários campos: - um campo pode ser um nome, um numero ou uma combinação de caracteres; Arquivo / Tabela / Entidade: Coleção de registros Conceitos Básicos - BD Nome RA Idade Carlos 25478 25 Maria 12568 28 REGISTROS TABELA ALUNOS Conceitos Básicos - BD Informação pode ser definida como sendo o Valor que este campo representa para as atividades da empresa. Ex.: Resposta a uma consulta. “Quantos são os alunos do curso de CC que cursaram a disciplina Estrutura de Dados?” “Quanto foi o lucro mensal da empresa?” Um Banco de Dados representará sempre aspectos do Mundo Real. Pessoal Envolvido em um BD Os Projetistas de Banco de Dados (DBP) são analistas que identificam os dados a serem armazenados em um Banco de Dados e pela forma como estes serão representados. Os Analistas e Programadores de desenvolvimento criam sistemas que acessam os dados da forma necessária ao Usuário Final, que é aquele que interage diretamente com o Banco de Dados. Os Administradores de Banco de Dados (DBA) são responsáveis pelo controle ao acesso aos dados e pela coordenação da utilização do BD. Pessoal Envolvido em um BD Usuários Finais: ocasionais : tipicamente gerentes e tomadores de decisão. paramétricos : usuários de transações “enlatadas”, por exemplo, caixas de bancos, funcionários de reservas em companhias aéreas. sofisticados : engenheiros, cientistas, analistas de negócios.Utilizam-se das facilidades do SGBD. DBA – Database Administrator entender e traduzir as necessidades informação dos vários setores da empresa; controlar e gerenciar de forma centralizada dados da empresa; aplicar restrições de segurança aos objetos banco de dados; definir e reforçar padrões; decidir a estrutura de armazenamento estratégia de acesso; monitorar o desempenho do SGBD. de os do e Funções do DBA Desenvolve e administra: Estratégias Procedimentos Práticas e Planos capazes de disponibilizar os dados corporativos necessários. Definição do conteúdo de informações do banco de dados Definição da estrutura de armazenamento e a estratégia de acesso Funções do DBA Servir de elo de ligação com os usuários Definir os controles de segurança e integridade: Definir quem tem acesso a que porções do banco de dados e criar mecanismos que evitem inconsistências na base de dados. Funções do DBA Definir a estratégia de backup e recuperação: É função do DBA definir como e quando os backup do banco de dados serão efetuados e a estratégia a ser adotada para a recuperação de informações em caso de danos ao banco de dados. Monitorar o desempenho e atender as necessidades de modificações: O DBA deve organizar o sistema de tal forma que se possa obter o melhor desempenho para a empresa. Sistemas de Gerenciamento de Banco de Dados (SGBD) Sistemas de Computação que permitem ao usuário, definir, criar, manter e controlar o acesso ao BD. Consistem em uma coleção de dados interrelacionados e em um conjunto de programas para acessá-los. Sistema de Gerência de Banco de Dados (SGBD) Coleção de programas responsáveis para gerenciamento dos dados em um BD. SGBD Banco de Dados Banco de Dados e SGBDs SGBD TOTALLivros NAutor Nom Total A1 Denis 2 A2 Georges 1 Livro num Livro Autor 1 2 livr livro2 o1 A1 A1 3 livro3 A2 Por que SGBDs Volume crescente de Dados a serem gerenciados: terabytes em BDs como: cadeias de supermercados; censo populacional - IBGE; Necessidade de Independência da aplicação em relação aos dados; Padronização e desempenho; Sistema Gerenciador do banco de dados - SGBD Database Management System – DBMS Banco de Dados (BD) = Coleção de dados inter-relacionados DBMS/SGBD = Módulo que proporciona a interface entre dados armazenados no banco de dados e os programas de aplicação e consultas submetidas ao sistema retirar e armazenar informações no BD Sistema Gerenciador de Banco de Dados Aplicação 1 SGBD Aplicação 2 Aplicação 3 Banco de Dados Definições - SGBD É o software responsável pelo gerenciamento (armazenamento e recuperação) dos dados no Banco de Dados. Coleção de dados inter-relacionados em um conjunto de programa para acessá-los. Coleção de programas que capacite o usuário a criar e manter um BD. A integração entre BD físico e os usuários se dá através de um software, o SGBD. Interfaces do SGBD Interfaces Baseadas em Menus para Clientes Web Interface baseada em formulários Interface Gráfica para os usuários Interfaces de Linguagem Natural Interfaces para Usuários Parametrizáveis Interfaces Baseadas em Menus para Clientes Web Interface baseada em formulários Interface baseada em formulários Interface Gráfica para os usuários Interfaces de Linguagem Natural Interfaces para Usuários Parametrizáveis SGBDs existentes PostgreSQL Oracle DBase Access Interbase IBM DB2 Universal Database Microsoft SQL Server Arquiteturas dos SGBD´s Plataformas Centralizadas Sistemas de Computadores Pessoais Arquitetura Cliente – Servidor. Modelos de Dados Formas de Representação que servem para descrever as estruturas das informações contidas em um BD. As Três Abordagens Clássicas O usuário vê o banco de dados segundo um modelo de visões; O modelo de visões e o modelo conceitual são bastante semelhantes, as vezes idênticos; Portanto os conceitos aplicados aqui servem tanto para o nível conceitual quanto para o de visões; Abordagem Hierárquica; Abordagem em Rede Abordagem Relacional; A Abordagem Hierárquica Esta seção e as seguintes são baseadas em um banco de dados contendo as entidades: Filial, Departamento e Funcionário. Na abordagem hierárquica, como o próprio nome já diz, os dados são organizados de acordo com níveis hierárquicos preestabelecidos; Os primeiros bancos de dados estão baseados nesta abordagem. Segundo Date, “um banco de dados hierárquico, compõe-se de um conjunto ordenado de árvores – mais precisamente, de um conjunto ordenado de ocorrências múltiplas de um tipo único de árvore”. A Abordagem Hierárquica Na abordagem hierárquica, podemos ver o banco de dados como um único arquivo organizado em níveis. O nível superior que contém a filial é chamado de raiz. Qualquer acesso ao banco de dados deve ser feito a partir dele; Em geral, a raiz pode ter qualquer quantidade de dependentes, e estes, qualquer quantidade de dependentes de nível mais baixo Exemplo de um Modelo Hierárquico Filial Departamento Funcionário Departamento Funcionário Exemplo de um Modelo Hierárquico 001 - Curitiba 001- Comercial 001- João 002- Administrativo 002- Antonio Exemplo de um Modelo Hierárquico 002 – São Paulo 001- Financeiro 001- João 002- Antonio 002- Pessoal 001- Maria 002- José Exemplo de um Modelo Hierárquico Dados do Cliente Nome Rua Dados Bancários Cidade Num_CC Saldo Exemplo de um Modelo Hierárquico Banco das Antigas Maria 201 R1 Caicó 550,00 Pedro 205 R3 Jundiaí 2.000,00 A Abordagem em Rede No modelo em rede as informações são representadas por uma coleção de registros e o relacionamento entre elas é formado através de ligações (link); Extensão do modelo hierárquico; É uma relação membro-proprietário, na qual um membro pode ter muitos proprietários. A Abordagem em Rede Em um BD estruturado como um modelo em rede há freqüentemente mais de um caminho para acessar um determinado elemento de dado. A principal diferença entre a abordagem hierárquica e a em rede é que um registro-filho tem exatamente um pai na abordagem hierárquica, enquanto na estrutura de rede um registro-filho pode ter qualquer número de pais. Exemplo 1 001- Londrina 001- Comercial 001 - João 002- Curitiba 002 - Administrativo 002- Antonio 003- Industrial 003- Pedro 004- Maria A Abordagem Relacional Um banco de dados relacional consiste em uma coleção de tabelas, cada uma designada por um nome único. Tabelas Uma tabela é uma representação bidimensional de dados composta de linhas e colunas; Uma tabela de alunos de uma escola é apresentada a seguir. Aluno Num-Matricula Nome-Aluno Sexo-Aluno 1 Maria F 2 João M 3 Pedro M 4 Carla F 5 Sandra F Regras: 1) Nomes de tabelas devem ser únicos no banco de dados; 2) De preferência a nomes no singular; 3) De preferência a nomes curtos. Atributos ou Colunas Considerando a tabela Aluno; Ela tem três colunas Num_Matrícula, Nome_Aluno e Sexo_Aluno; A cada uma destas colunas damos o nome de atributo; Um nome de atributo deve ser único em uma tabela e dizer exatamente o tipo de informação que ele representa. Atributos ou Colunas Regras: 1) Uma coluna (atributo) não segue um ordenamento especifico; 2) O valor de uma coluna não pode ser decomposto em mais de uma coluna; 3) Nome de uma coluna deve expressar exatamente o que armazena; 4) Deve-se utilizar prefixos padronizados, Cod-Dept, Nome-Funcionorio, Qtde-Estoque. Linhas, Registros ou Tuplas A tabela Aluno possui cinco registros; Cada registro representa um relacionamento entre um conjunto de valores; A este relacionamento damos o nome de registro, linha ou ainda Tupla; Cada linha da tabela é única e possui um atributo identificador (Num_Matrícula); Este atributo identificador é chamado de chave primária. Regras: 1) Em uma tabela não devem existir linhas duplicadas; 2) As linhas de uma tabela não seguem uma ordem especifica. Terminologias aplicadas a BD Terminologia Básica Campo: unidade básica de informação mínima com significado Registro: conjunto de campos Arquivo: conjunto de registros Banco de Dados (BD): conjunto de arquivos e as formas de manipulação Terminologia Relacional Campo: atributo Registro: tupla Arquivo: tabela ou relação Domínio: conteúdo da relação Modelo Relacional É o padrão atual para a construção de ferramentas de BD Basicamente, um BD relacional é composto de tabelas ou relações Uma tabela é um conjunto não ordenado de linhas Cada linha é composta por uma série de valores de campo Cada campo é identificado por um nome de campo O conjunto de campos das linhas de uma tabela que possuem o mesmo nome formam uma coluna Modelo Relacional - Composição de um Banco de Dados Relacional Automóveis Valor do campo (valor do atributo) Linha (tupla) Coluna (atributo) Nome da Coluna (nome do atributo) num_placa modelo ano marca IAV8864 Gol 1988 VW BCX6574 Tempra 1993 Fiat IIJ0493 Parati 1997 VW FGD5362 Astra 2000 GM