GTI 103 - Fundamentos de Banco de Dados (Prof. Kadu)

GTI 103 - Fundamentos de Banco de Dados (Prof. Kadu)

(Parte 1 de 9)

Fundamentos de Banco de Dados

Graduação Tecnológica: Tecnologia da Informação

Autor: Prof. Carlos Eduardo Gertners de Magalhães

Fundamentos de Banco de Dados

SUMÁRIO2
LISTA DE FIGURAS3
UNIDADE I - INTRODUÇÃO4
UNIDADE I - INTRODUÇÃO4
1.1 Utilização inicial dos computadores x evolução na organização da informação4
1.2 Conceituação6
1.2.1 Banco de dados6
1.2.2 SGBD7
1.3 Usuários de banco de dados9
1.4 Funções de um SGBD10
1.5 Modelos de dados, esquemas e instâncias1
1.6 Independência de dados13
1.7 Linguagens e interfaces14
1.8 Classificação de SGBDs15
1.9 Estado da tecnologia de banco de dados16
UNIDADE I - MODELOS DE DADOS18
2.1 Hierárquico18
2.2 Redes20
2.3 Relacional23
2.4 Modelos Recentes25
2.4.1 Semânticos25
2.4.2 Funcionais26
2.4.3 Relacional Aninhado26
2.4.4 Orientado a Objetos27
2.4.5 Semi-Estruturados (XML)29
2.4.6 Textual29
2.4.7 Geográfico30
2.4.8 Genético30
2.4.9 Em memória30
2.4.10 Multimídia30
2.4.1 OLAP32
UNIDADE I - MODELO RELACIONAL36
3.1 Conceitos36
3.2 Características de relações38
3.3 Relações em primeira , segunda e terceira forma normal39
3.4 Atributo chave45
3.5 Regras de integridade46
3.6 Notações48
UNIDADE IV - LINGUAGEM DE CONSULTA SQL49
4.1 Consulta simples49
4.2 Join50
4.3 Atualização de tabelas52

Fundamentos de Banco de Dados

Figura 1: Nível Externo/Nível Conceitual/Nível Interno13
Figura 2: Representação do Modelo Hierárquico18
Figura 3: Significado de cada campo18
Figura 4: Representação do Modelo em Rede20
Figura 5: Significado de cada campo20
Figura 6: Estrutura de uma Lista Invertida associada aos documentos indexados21
Figura 7: Representa o MER – Modelo de Entidade e Relacionamento23
Figura 8: Representa o DR – Diagrama Relacional23
Figura 9: Representação das Tabelas propriamente ditas24
Figura 10: UML – Diagrama de Classes27
Figura 1: Modelo OLAP32
Figura 12: Comparação entre Base de Dados OLTP x OLAP32

Fundamentos de Banco de Dados

1.1 Utilização inicial dos computadores x evolução na organização da informação

Histórico: - Iniciada na década de 50, com o uso dos primeiros computadores. Baseados em grandes equipamentos para processamento e armazenamento de informações. Estes computadores ocupavam salas inteiras. A manutenção era complicada. Não existia sistema operacional e nem banco de dados.

- Nos anos 60 e 70. Mainframes (computadores de grande porte) e front ends (para que o usuário pudesse interagir com o computador). Terminais burros. Surgimento das impressoras. Processamentos em batch. Gerenciamento centralizado. 1ª geração: Banco de Dados Hierárquico e Banco de Dados em Rede (mais trabalho no desenvolvimento de sistemas, pois todas as checagens eram efetivamente feitas na parte da programação - ex.: para checar uma chave primária, o código deveria fazer esta checagem). Empresas de médio e pequeno porte nem usavam computadores. Todas as informações eram guardadas em armários, existiam diversos tipos de fichários para armazenar as informações. Por exemplo: dados do funcionário que foi contratado pela empresa (novo funcionário).

- Anos 80. Introdução ao PC (Personal Computer - Computador Pessoal). Baixo custo. Processamento próximo ao usuário. Descentralização. Micro com suas próprias características (por exemplo, processamento local), passaram a ter HD no próprio micro (PC). Sem backup. Vírus, pirataria. Duplicação de dados (os mesmos dados em diferentes sistemas espalhados na organização). 2ª geração: Bancos de Dados Relacionais - Normas e restrições (menos flexibilidade na programação, menos trabalhoso para os desenvolvedores na parte da programação. O próprio SGBD verifica a PK). Oracle (1977), Ingres (1974), Sybase, Informix (1981) despontaram mais no mercado nesta época. . Computadores eram usados de forma mais isolada. . Sem conexões em rede. . Sistemas independentes, sistemas monousuários (somente um usuário usava e acessava o sistema). . Nesta geração que ocorreu a separação das profissões: DBA (Administrador de Banco de Dados), Analista de Sistemas, Programador. Posteriormente foram incorporadas as profissões: Administrador de Dados e Analista de Negócios. Estas profissões são encontradas em determinadas empresas de acordo com a necessidade desta empresa.

computadores)

- Fim dos anos 80. Redes de computadores tornam-se importantes para as organizações. Compartilhamento de recursos (acesso a discos comuns, uso de impressora em comum). Correio Eletrônico. Transferência de arquivos (FTP). . Usado inicialmente em centros acadêmicos e até na parte militar (redes de . Depois usado em empresas de maior porte (com mais dinheiro).

Fundamentos de Banco de Dados

. Com os microcomputadores começou a utilização do computador de forma mais "popular" através das empresas. Pois o valor dos microcomputadores era baixo e começou-se a observar ganhos de produtividade e diminuição de custos (ex.: economia de papel ao usar o computador ao invés da máquina de escrever).

- Na década de 90 até hoje. Interligação das diversas tecnologias de redes de computadores e a integração das mesmas com os mainframes e minicomputadores. A padronização proposta pelas redes corporativas permitiu que os diversos computadores se comunicassem independentemente das suas arquiteturas de hardware e software. Surgimento em larga escala da Internet. 3ª geração: Banco de Dados Pós-Relacionais - Domínio da aplicação e do mundo real. Ex.: Caché (modelo de banco de dados: hierárquico, relacional e orientado a objeto). Oracle, DB2 e SQL Server (foco principal no modelo de banco de dados: relacional).

Obs.: Oracle É um SGBD (sistema gerenciador de banco de dados) que surgiu no fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia. O Oracle 9i foi pioneiro no suporte ao modelo web. Versão mais recente Oracle 11g (versão anterior Oracle 10g). A letra g relativa à tecnologia grid. DB2 É o Sistema Gerenciador de Banco de Dados Relacionais (SGDBR) produzido pela IBM. Existem diferentes versões do DB2 que rodam: num simples computador de mão até em potentes mainframes e funciona em servidores baseados em sistemas Unix, Windows, ou Linux. Versão mais recente DB2 9.5. Ingres É um SGBD relacional, pertence a CA. Em 2004, foi lançado o Ingres r3 e seu código fonte foi liberado para a comunidade open source e demais usuários do banco, que podem a partir desse momento, utilizá-lo sem nenhum custo (relativo à licença de uso). Ele é considerado um dos mais robustos e poderosos SGBDs para armazenamento de dados de missão crítica, e que necessitam de um grande nível de segurança no acesso e armazenamento, bem como tem suporte a grande concorrência de acesso às informações nele armazenadas. Versão mais recente Ingres 2006 Release 3. Sybase É uma empresa de desenvolvimento de software, especializada em sistema de gerenciamento de banco de dados ou SGBD. A Sybase hoje é especializada em sistemas operacionais Microsoft Windows, mas inicialmente trabalhava com sistemas Unix. Seu SGBD "SQL Server" foi portado para Windows e usado como base para o desenvolvimento do servidor de mesmo nome da Microsoft. Ambas desenvolveram o mesmo produto até a versão 4.21 em parceria, quando ambas passaram a desenvolver produtos distintos. Devido ao poder do marketing da empresa, o Microsoft SQL Server é muito mais comentado do que o produto similar da Sybase, o que levou esta empresa a trocar o nome de seu produto para Adaptive Server Enterprise a partir da versão 1.5. Atualmente o ASE se encontra na versão 15. SQL Server É um gerenciador de Banco de dados relacional feito pela Microsoft. É um Banco de dados robusto e usado por sistemas corporativos dos mais diversos portes. Sua versão atual é a 2005. Versão mais recente SQL Server 2008.

Fundamentos de Banco de Dados

Informix Dynamic Server (IDS) 1.5

Informix É um sistema de gerenciamento banco de dados relacional (relational database management system (RDBMS)) da IBM, adquiridos em 2001 de uma companhia também chamada Informix que teve sua origem nos anos 80. O banco de dados Informix foi concebido e projetado por Roger Sippl no final dos anos 70. A Informix foi fundada em 1980, tornou-se pública em 1986, e por um período dos anos 90 foi o segundo banco de dados mais popular depois do Oracle. Em meados de 2005, a IBM lançou a versão 10 do Informix IDS (Informix Dynamic Server). Em 2006 houve uma grande mudança na estratégia da IBM sobre servidores de banco de dados no que diz respeito ao IDS. IDS é agora um servidor de banco de dados estratégico dentro do catalogo de produtos da IBM Information Management. A versão mais recente é MySQL É um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada) como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. A versão mais recente é MySQL Enterprise Server 5.4. PostgreSQL É um sistema gerenciador de banco de dados objeto relacional (SGBDOR), desenvolvido como projeto de software livre. É um dos SGBDs de código aberto mais avançados, contando com recursos como: consultas complexas, chaves estrangeiras, integridade transacional, controle de concorrência multiversão, suporte ao modelo híbrido objeto relacional, trigger, views e stored procedures em várias linguagens. A versão mais recente é PostGreSQL 8.4. Firebird Algumas vezes chamado de FirebirdSQL. É um sistema gerenciador de banco de dados. Roda em Linux, Windows, Mac OS e uma variedade de plataformas Unix. A Fundação FirebirdSQL coordena a manutenção e desenvolvimento do Firebird. Baseado no código do InterBase da Borland, quando da abertura de seu código na versão 6.0 (em 25 de Julho de 2000). A versão mais recente é FireBird 2.5.

1.2 Conceituação

1.2.1 Banco de dados - Dado Valor de um campo armazenado, matéria-prima para obtenção de informação.

- Informação Dados compilados e processados de acordo com a solicitação de consultas e análises.

- Também conhecido como Base de Dados.

Fundamentos de Banco de Dados

- Propriedades: . Uma base de dados é uma coleção de dados logicamente relacionados, com algum significado. Associações aleatórias de dados não podem ser chamadas de base de dados; . Uma base de dados é projetada, construída e preenchida com dados para um propósito específico. Ela tem um grupo de usuários e algumas aplicações pré-concebidas para atendê-los; . Uma base de dados representa algum aspecto do mundo real, algumas vezes chamado de “minimundo”. Mudanças no minimundo provocam mudanças na base de dados.

- São conjuntos de dados com uma estrutura regular que organizam as informações. Um banco de dados normalmente agrupa informações utilizadas para um mesmo fim.

- Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado como sinônimo de SGDB.

- O modelo de dados mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por linhas e colunas.

- É uma coleção de registros salvos em um computador, de forma que um programa de computador possa consultá-lo para responder perguntas.

- Conjunto de dados organizado de forma estruturada.

- Normalmente acessado pelo SGBD (Sistema Gerenciador de Banco de Dados)

- Modelo de dados é a parte conceitual. SGBD é a parte prática.

- É uma coleção de dados inter-relacionados, representando informações sobre um domínio específico. Exemplos: Lista Telefônica. Fichas de uma biblioteca.

- Um Sistema Gerenciador de Banco de Dados. SGBD é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados. O principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, manipulação e organização dos dados. O SGBD disponibiliza uma interface para que os seus clientes possam incluir, alterar ou consultar dados. Em bancos de dados relacionais a interface é constituída pelas APIs ou drivers do SGBD, que executam comandos na linguagem SQL.

Fundamentos de Banco de Dados

- Um sistema gerenciador de banco de dados é um sistema extremamente complexo, responsável pela persistência, organização e recuperação dos dados.

- São softwares que permitem a definição de estruturas para armazenamento de informações e fornecimento de mecanismos para manipulá-las.

- Características de um SGBD: . Integridade No sentido dos dados, a integridade do conteúdo dos dados. A validação dos dados, vinculado ao domínio da respectiva coluna. . Restrições São verificações efetuadas pelo próprio SGBD, nos quais garantem determinadas características para uma determinada coluna. Ex.: a coluna sexo só pode ter os valores F - Feminino e M - Masculino. . Segurança/Privacidade Só os usuários com os devidos acessos poderão acessar os respectivos dados. Caso haja uma concorrência de um determinado objeto do banco de dados será criada uma lista deste objeto para que todos os usuários sejam atendidos. . Restauração Restauração dos dados no sentido de manter o banco de dados correto, sem erros. Normalmente baseado no reinício do funcionamento do banco de dados nos quais podiam ter operações em execução. Ex.: numa falha de energia elétrica. . Reorganização No sentido que reorganizações de estruturas podem ser efetuadas dependendo das operações efetuadas no banco de dados (inserção, alteração ou deleção). . Eficiência De acesso às informações armazenadas pelo banco de dados. Normalmente através de mecanismos de buscas de informação. Ex.: SQL (Structured Query Language). . Compartilhamento Compartilhar os dados entre os diversos usuários que acessam o SGBD. . Interfaces Algumas interfaces para ter acesso ao SGBD. . Backup Prover mecanismos de backup do SGBD. Sendo próprios do SGBD ou através de ferramentas de terceiros. . Padronização Sugerir que a organização siga uma nomenclatura para os devidos objetos do SGBD. Facilitará futuras manutenções. . Flexibilidade Ao efetuar uma manutenção no SGBD no qual possa surgir a necessidade de adicionar mais informações ao SGBD. A modificação na estrutura é simples. Ex.: ao adicionar colunas a mais para uma tabela. . Redução desenvolvimento de aplicações No caso do desenvolvimento de um novo sistema no qual os dados já estejam disponíveis a partir de um SGBD. . Disponibilidade de informações atualizadas Tão logo o usuário modifique uma base de dados, todos os outros usuários passam a enxergar esta modificação. Esta disponibilidade de informações atualizadas é essencial para muitas aplicações. Ex.: sistemas de reservas de passagens aéreas ou bases de dados bancárias.

- Quando não utilizar um SGBD . Bases de dados e aplicações simples, bem definidas, sem expectativa de mudança; . Não há necessidade de acesso multiusuário.

Fundamentos de Banco de Dados

- Algumas vantagens de usar SGBD x Não usar SGBD . Responsabilidade do SGBD de manter a integridade dos dados do sistema, a checagem fica a cargo do SGBD e não do programador (ex.: como acontecia com a linguagem Clipper). . Facilitar a manutenção no armazenamento dos dados, nos quais são modificados através de procedimentos do próprio SGBD. . Fazer balanceamento de carga. No qual responsabilidades do SGBD (ficam com o SGBD) e responsabilidades da aplicação (ficam com a aplicação). . Rotinas de backup vinculadas ao próprio SGBD. . Procedimentos já implementados pelo SGBD de concorrência ao sistema. . Determinadas empresas apresentam ambientes distintos entre: Desenvolvimento (ou Testes), Homologação (ou Qualidade) e Produção. Ambientes estes que até podem estar em servidores físicos diferentes.

1.3 Usuários de banco de dados

- Administrador de dados (AD): é a pessoa que conhece bem a empresa e, por isso, é este quem cria e mantém o dicionário de dados, entre outras funções (conhecer bem a parte de negócio da empresa, indicar de onde as informações serão obtidas, definir nomenclaturas, definir interações entre diferentes bancos de dados).

- Administrador de banco de dados (DBA): é o especialista em SGBD que controla os dados e aplicativos que acessam o banco de dados. Também é de sua responsabilidade: elaborar o projeto físico do banco de dados, auxiliar na construção do modelo lógico, fazer manutenções, modificar a estrutura física. Criar rotinas administrativas (ex.: backup, atualização do plano de estatística, etc.). Checar performances relativas aos bancos de dados. Auxiliar desenvolvedores e programadores na construção de consultas para o banco de dados.

- Projetista de banco de dados: pessoa que entende bem de engenharia de software e é responsável por identificar os dados que serão armazenados, além de escolher a estrutura para representar e armazenar os dados, ouvir o usuário para obter suas necessidades. Normalmente este profissional analisará as necessidades do usuário e escolherá um SGBD que implemente um determinado modelo para que atenda o usuário da melhor maneira possível.

- Analistas de sistemas: determinam os requisitos dos usuários finais, e desenvolvem especificações das transações para atender a estes requisitos. Fazendo o devido estudo das necessidades do usuário no nível do desenvolvimento do sistema.

- Analista de negócios: determinadas empresas utilizam o profissional que tem um grande conhecimento da parte do negócio em si, sem ter a necessidade de saber de procedimentos mais peculiares da parte do desenvolvimento de um sistema.

- Programadores de aplicações: implementam estas especificações produzindo programas. Que são testados, depurados, documentados e mantidos por estes

Fundamentos de Banco de Dados profissionais. Analistas e programadores devem estar familiarizados com todas as capacidades fornecidas pelo SGBD para desempenhar estas tarefas da forma mais otimizada possível.

- Usuário Final: i) Casual: ocasionalmente faz acesso a base de dados, mas ele pode necessitar de diferentes informações a cada vez que faz acesso. Pode usar uma linguagem de consulta sofisticada para especificar suas requisições. Normalmente são os gerentes de médio ou alto nível; i) Comum ou paramétrico: este usuário realiza operações padrões de consultas e atualizações, chamadas TRANSAÇÕES PERMITIDAS, que foram cuidadosamente programadas e testadas. Este usuário constantemente realiza recuperações e modificações na base de dados; i) Sofisticado: inclui engenheiro, analistas de negócio e outros que procuram familiarizar-se com as facilidades de um SGBD para atender aos seus complexos requisitos; iv) Individual: possui banco de dados pessoal e utiliza programas já prontos.

1.4 Funções de um SGBD

Métodos de acesso

- DDL (Data Definition Language) Especificação do esquema do BD (dados e seus tipos de dados, índices, entre outros objetos). - DML (Data Manipulation Language) Manipulação de dados (insert, update, delete, select). - Processamento eficaz de consultas através dos algoritmos implementados pelo SGBD.

(Parte 1 de 9)

Comentários