(Parte 1 de 9)

Apostila BANCO DE DADOS IBANCO DE DADOS I

F A C E C A 2009

Unidade I. CONCEITOS DE BANCO DE DADOS9
I.1. Banco de dados9
I.2. SGDB9
I.3. PORQUE UTILIZAR BANCOS DE DADOS1
I.3.1. Eliminação da Redundância1
I.3.2. Compartilhamento de Dados12
I.3.3. Controle de acesso12
I.3.4. Relacionamentos complexos de dados12
I.3.5. Disponibilidade12
I.3.6. Múltiplas Interfaces12
I.3.7. Restrições de Integridade12
I.3.8. Backup e Restauração12
I.4. CLASSIFICAÇÃO DE USUÁRIOS DE BANCO DE DADOS12
I.4.1. Administrador de Banco de Dados ABD (DBA)12
I.4.2. Projetista de Banco de Dados13
I.4.3. Usuários Finais13
I.4.4. Analistas de Sistemas e Programadores de Aplicações13
I.5. ATIVIDADES14
Unidade I. MODELOS15
I.1. MODELOS DE DADOS15
I.1.1. Modelo Hierárquico15
I.1.2. Modelo em Rede16
I.1.3. Modelo Relacional17
I.1.4. Modelo Orientado a Objetos18
I.1.5. Esquema, Instância e Estado de um Banco de Dados18
I.1.6. Arquitetura de Três - Esquemas19
I.2. ATIVIDADES21
Unidade I. MER2
I.1. MODELO ENTIDADE E RELACIONAMENTO2
I.1.1. Simbologia ER2
I.1.2. Entidade e atributo23
I.1.5. Grau24
I.1.6. Cardinalidade25
I.2. D.E.R27
I.3. ATIVIDADES29
Unidade IV. MER-E30
IV.1. Subclasses, Superclasses e Especializações30
IV.2. Especialização31
IV.3. Generalização32
IV.4. “Lattice” ou Múltipla Herança3
IV.5. ATIVIDADES34
Unidade V. MODELO RELACIONAL35
V.1. Principais características das relações35
V.2. Esquema e Restrições de Integridade36
Restrições de domínio36
Restrições de domínio36
Restrições de domínio36
Restrições de chaves36
Restrições de chaves36
Restrições de chaves36
Restrições de integridade de entidade36
Restrições de integridade de entidade36
Restrições de integridade de entidade36
Restrições de integridade referencial (RIR)36
Restrições de integridade referencial (RIR)36
Restrições de integridade referencial (RIR)36
V.3. ATIVIDADES38
Unidade VI. Álgebra relacional39
VI.1.1. Operadores40
VI.2. ATIVIDADES4
Unidade VII. normalização46
VII.1. Dependências funcionais47
VII.2. Formas normais baseadas em chaves primárias48
VII.2.1. Primeira Forma Normal (1FN)48
VII.3. ATIVIDADES50
Unidade VIII. Linguagem SQL51
VIII.1. Definição de dados em SQL51
VIII.2. MANIPULAÇÃO DE DADOS EM SQL52
VIII.3. ATIVIDADES54
Unidade IX. Prática em ferramenta de designer5
IX.1. Projetando o banco de dados5
IX.1.1. Modelagem conceitual56
IX.1.2. Projeto lógico56
IX.1.3. Implementando o modelo conceitual56
IX.1.4. Gerando o modelo físico com o dbDesigner60
IX.1.5. Sincronização62
IX.1.6. Exportando o script62
IX.1.7. Manipulação de dados63
IX.1.8. Inserindo dados64
IX.1.9. Consultando dados65
IX.1.10. Engenharia reversa65
IX.2. ATIVIDADES68
Unidade X. introdução ao firebird69
X.1. Principais Recursos69
X.2. Testado O Firebird70
X.3. Documentação70
X.4. Ferramentas e Componentes70
X.5. ATIVIDADES72
Unidade XI. Usando o IBExpert73
XI.1. Fazendo o “registro” do banco de dados74
XI.2. Criando um “banco de dados Firebird” no IBExpert75
XI.3. Criando as “tabelas” do banco de dados76
XI.4. Criando a “chave estrangeira” na tabela PROFESSOR78
Figura 1 – Estrutura de um SGDB1
Figura 2 – Diagrama de estrutura em árvore – Registro de compras16
Figura 3 – Diagrama do modelo em redes17
Figura 4 – Exemplo do modelo relacional17
Figura 5 – Exemplo de banco de dados orientado a objetos18
Figura 6 – Exemplo de esquema de banco de dados19
Figura 7 – Arquitetura em três esquemas19
Figura 8 – Esquema de modelagem MER2
Figura 9 – Exemplo de chave composta e chave simples23
Figura 10 - Relacionamento entre entidades24
Figura 1 – Relacionamento ternário25
Figura 12 – Grau de relacionamento25
Figura 13 – Relacionamento reflexivo25
Figura 14 – Cardinalidade 1 para 125
Figura 15 – Cardinalidade 1 para n25
Figura 16 – Cardinalidade 1 para muitos26
Figura 17 – Relação de participação parcial26
Figura 18 – Cardinalidade mínima26
Figura 19 – Exemplo de cardinalidade máxima26
Figura 20 – Exemplo de cardinalidade mínima e máxima27
Figura 21 – Exemplo de DER28
Figura 2 - Representação de Superclasse e Subclasses31
Figura 23 - Duas Especializações para Empregado: Função e Categoria Salarial31
Figura 24 - Relacionamentos Entre Subclasses e Entidades32
Figura 25 - Tipos Entidades Engenheiro e Secretária32
Figura 26 - Generalização Empregado para os Tipos Entidades Engenheiro e Secretária32
Figura 27 - Uma Generalização com “Overlap”3
Figura 28 - Um “Lattice” com a Subclasse Gerente Compartilhada3
Figura 29 – Exemplo de modelo relacional35
Figura 30 – Exemplo de modelo ER criado com dbDesigner39
Figura 31 – Exemplo de tabelas39
Figura 32 – Exemplo da operação “União”40
Figura 3 – Exemplo da operação “Intersecção”40
Figura 34 – Exemplo da operação “Diferença”40
Figura 37 – Exemplo da operação “Projeção”42
Figura 38 – Exemplo da operação “Divisão”42
Figura 39 – Exemplo da operação “Junção”43
Figura 40 – Exemplo da operação “Junção” distinta43
Figura 41 – Exemplo da operação “Renomear”43
Figura 42 – Decomposição de relações46
Figura 43 - Modelo conceitual de uma locadora56
Figura 4 - Interface gráfica do dbdesigner57
Figura 45 – Janela de edição de tabelas do dbdesigner58
Figura 46 – Resultado da implementação do modelo conceitual com dbdesigner58
Figura 47 - Definindo relacionamentos59
Figura 48 - Janela de edição do relacionamento59
Figura 49- Notação (pé-de-galinha)60
Figura 50 - Resultado da modelagem60
Figura 51 - Janela de conexão ao banco de dados61
Figura 52 - Exibindo/criando banco de dados61
Figura 53 - Estabelecendo conexão ao banco61
Figura 54 - Sincronização com o banco de dados62
Figura 5 - Opções de exportação63
Figura 56 - Modo de manipulação de dados (query mode)64
Figura 57 - Janela de manipulação de dados64
Figura 58 - Menu para manipulação de dados65
Figura 59 - Criando o modelo físico6
Figura 60 - Janela com opções para engenharia reversa67
Figura 61 - Resultado da engenharia reversa67
Figura 62 - Passos para registrar bancos de dados no IBExpert74
Figura 63 - Banco de dados “PROF.GDB” registrado no IBExpert75
Figura 64 - Passos para criar bancos de dados no IBExpert76
Figura 65 - Passos para criar a tabela TITULO7
Figura 6 - Passos para criar a tabela “PROFESSOR”78

7 PREFÁCIO

Este material compreende o conteúdo básico da disciplina Banco de dados I do curso de Sistemas de Informação.

Esta disciplina tem como principal objetivo, possibilitar a compreensão destes sistemas e ainda permitir um bom referencial para construção de bases de dados funcionais e adequadas às necessidades do negócio em questão.

Compõem este material o conteúdo básico para a compreensão da importância dos bancos de dados, os principais modelos de dados utilizados, conceitos básicos sobre o funcionamento das estruturas de armazenamento, design, manipulação e acesso aos dados que compõem um sistema de informação de uma organização.

Também, caracteriza os diversos profissionais envolvidos com um sistema de gerenciamento de banco de dados e alguns modelos de ferramentas necessárias para lidar com esta tecnologia em diversos níveis.

Além de trazer um referencial que possibilita a compreensão dos principais conceitos, este material apresenta ferramentas, exemplos e aplicações práticas que possibilitam ao aluno entender, observar e praticar a construção de bancos de dados de acordo com o cenário de estudo.

A linguagem SQL será abordada fundamentalmente para permitir que o aluno possa executar as principais operações que vão desde a construção de estruturas de dados, manipulação, consultas e controle de acesso.

Outros conceitos mais avançados serão tratados da disciplina de banco de dados I.

Ao final do período o aluno terá condições de projetar banco de dados relacional, manipular dados e extrair informações conforme suas necessidades.

8 INTRODUÇÃO

Banco de dados sempre teve um peso alto no conjunto que compreende o conceito de informatização nas empresas. Associado a uma boa estrutura de equipamentos, telecomunicações e redes, forma a infra-estrutura básica para manipular e disponibilizar as informações vitais para as organizações modernas.

Compreender o funcionamento e saber utilizar informações disponíveis nas complexas estruturas de dados das empresas tornou-se um requisito básico para um profissional de TI.

Lembramos, porém, que para projetar um banco de dados para um negócio complexo será exigido muito mais do que conceitos básicos e domínio de ferramentas ou tecnologias. Será preciso entender, ou até mesmo, dominar o negócio em si para permitir a abstração do modelo ideal das estruturas que irão armazenar, manipular e disponibilizar as informações em necessárias.

I.1.BANCO DE DADOS O que é um banco de dados?

Bancos de Dados (BD – Database) são conjuntos de dados relacionados e acessíveis. Dados são fatos conhecidos, que podem ser registrados e possuem significado.

Um Banco de Dados contém os dados dispostos numa ordem pré-determinada em função de um projeto de sistema, sempre para um propósito muito bem definido.

Sistemas Gerenciadores de Bancos de Dados (SGBD ou DBMS – Database Management System) são sistemas que gerenciam BD, ou são linguagens utilizadas para manter os BD.

Banco de Dados é um conjunto de dados armazenados, cujo conteúdo informativo representa, a qualquer instante, o estado de uma determinada aplicação. Um banco de dados é um modelo de uma determinada parte da realidade, geralmente denominada de Universo de Discurso.

Um SGBD - Sistema de Gerenciamento de Banco de Dados é uma coleção de programas que permitem ao usuário definir, construir e manipular Bases de Dados para as mais diversas finalidades.

Um conceito que deverá ficar bastante claro inicialmente é o que envolve a separação clara entre os Gerenciadores de Base de Dados dos Gerenciadores de Arquivo.

É importante salientar que, para que uma estrutura de armazenamento de dados seja considerada um Sistema de Gerenciamento de Dados (SGDB), é necessário que contenha algumas propriedades básicas:

1) Autocontenção: Um SGBD deve armazenar os dados e todas as informações sobre sua estrutura, denominada Meta-Base de Dados.

2) Independência dos Dados: Toda mudança na estrutura de armazenamento e estratégia de acesso aos dados deverá ser realizada diretamente no banco de dados.

3) Abstração dos Dados: Um SGBD fornece ao usuário somente uma representação conceitual dos dados sem incluir maiores detalhes sobre sua forma de armazenamento real. Somente o esquema das tabelas, seus relacionamentos e suas chaves de acesso são exibidos ao usuário.

4) Múltiplas Visões de dados: O banco de dados deve permitir que cada usuário visualize os dados de forma diferente daquela definida em sua estrutura básica sem ter que gerar nova estrutura e transferir os dados para esta.

5) Transações: Um SGBD deve gerenciar toda a integridade referencial definida em sua estrutura, sem precisar do auxílio do programador. Assim, o banco de dados deve permitir a gravação de uma série modificações simultâneas e através de uma instrução ser capaz de revertê-la.Tudo para garantir que todas as informações sejam processadas corretamente ou que todas sejam canceladas em caso de pelo menos uma delas ser mal sucedida.

6) Acesso automático: O SGBD deve ser capaz de gerenciar o acesso e gravação simultânea de dados por vários usuários sem a interação do programador no travamento de registros e tabelas.

Outras características importantes: Controle de redundância dos dados;

Compartilhamento de dados entre múltiplos usuários;

A restrição de acesso aos dados para usuários não autorizados;

Os diferentes tipos de interface para os diferentes usuários;

A representação dos dados com um nível grande de complexidade;

Garantia da restrição de integridade, que mantém os dados íntegros;

Mecanismos de segurança dos dados, tais como, cópia (backup) e recuperação (recovery) de dados;

Flexibilidade na mudança das estruturas de dados;

Garantia de que dados sempre atuais estão disponíveis;

Economia de escala relacionada com a redução do tempo de desenvolvimento da aplicação, já que um dado usado uma vez continuará disponível para outras aplicações.

O grupo DevMedia (w.devmedia.com.br) publica mensalmente revista SQL Magazine. Trata-se de um veículo extremamente rico em conteúdos para iniciantes e profissionais de banco de dados.

Além dos conteúdos impressos há diversos artigos e vídeos interessantes. Para quem não é assinante, há muitos conteúdos gratuitos.

Figura 1 – Estrutura de um SGDB

I.3.PORQUE UTILIZAR BANCOS DE DADOS

I.3.1.Eliminação da Redundância

Quando não há um banco de dados disponível a todos, cada grupo de usuários mantém seu próprio conjunto de arquivos e dados. Ocasionando duplicações de informações importantes, versões diferentes de dados, falta de integridade, maior espaço para armazenamento, dificuldade para recuperar dados nas diversas origens e muito tempo para obter informações consolidadas além de outras dificuldades.

I.3.2.Compartilhamento de Dados

Um SGBD multi-usuário permite que diversos grupos de usuários acessem e alimentem as informações ao mesmo tempo. Isto significa aumento do controle e manutenção dos dados atualizados. Com a disseminação do uso da Internet é possível acessar informações em qualquer lugar do mundo a um custo razoável e com uso de diversos dispositivos digitais.

I.3.3.Controle de acesso

Um SGBD oferece um subsistema de autorização e segurança que permite criar “contas” e especificar suas restrições conforme as necessidades de cada usuário. O controle de acesso às informações inclui mecanismos que evitem a invasão, alterações restritas e visualização apenas dos dados necessários.

I.3.4.Relacionamentos complexos de dados

(Parte 1 de 9)

Comentários