O documento discute conceitos fundamentais sobre arquivos e estruturas de dados, incluindo:
1) Entidades possuem atributos e registros que armazenam pares atributo-valor;
2) Tabelas ordenam registros e podem ser armazenadas em memória ou disco;
3) Chaves primárias e secundárias identificam registros.
1) O documento discute conceitos básicos sobre sistemas de informação e bases de dados, incluindo componentes, objetivos e arquitetura de sistemas de gestão de bases de dados.
2) Um sistema de gestão de bases de dados (SGBD) ajuda a organizar e gerir informação armazenada em uma base de dados de forma estruturada em tabelas.
3) As tabelas, campos, registos e chaves primárias e externas são elementos fundamentais do modelo relacional de bases de dados.
O documento discute conceitos fundamentais de bancos de dados, incluindo razões para armazenar informações, história do armazenamento de dados, modelos de banco de dados, modelagem de dados usando o modelo entidade-relacionamento, e componentes-chave de bancos de dados como entidades, atributos e relacionamentos.
O documento descreve o modelo entidade-relacionamento para bancos de dados, incluindo conceitos como entidades, atributos, relacionamentos, cardinalidades, chaves, generalização e outros. É apresentado um exemplo detalhado de um modelo E-R para uma companhia com entidades como funcionário, departamento, projeto e seus relacionamentos.
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
O documento fornece o currículo de Ricardo Terra, incluindo seus detalhes de contato, formação acadêmica e experiência profissional. Ele também apresenta os conceitos básicos do modelo entidade-relacionamento (ER), incluindo entidades, relacionamentos e atributos.
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
Este documento fornece uma introdução sobre banco de dados. Explica o que é um banco de dados, alguns termos comuns como dados, registros e arquivos. Também discute os modelos de dados hierárquico, em rede e relacional, e como os bancos de dados melhoram em relação aos sistemas de arquivos tradicionais.
O documento apresenta um resumo sobre modelagem conceitual de banco de dados. Aborda conceitos como entidade, atributos, relacionamentos, cardinalidades e tipos de entidades. Fornece exemplos para ilustrar cada tópico e exercícios para fixação dos conceitos.
O documento descreve os conceitos básicos de bancos de dados, incluindo: (1) Bancos de dados são conjuntos de dados organizados com estrutura regular para armazenar informações; (2) O modelo relacional é o mais comum, representando dados em tabelas com linhas e colunas; (3) Bancos de dados são usados em muitas aplicações para armazenar dados compartilhados.
O documento descreve os principais conceitos de modelagem de dados usando Diagrama Entidade Relacionamento (DER), incluindo entidades, atributos, chaves primárias e relacionamentos. Exemplos de entidades em um sistema escolar são apresentados para ilustrar esses conceitos.
1) O documento discute conceitos básicos sobre sistemas de informação e bases de dados, incluindo componentes, objetivos e arquitetura de sistemas de gestão de bases de dados.
2) Um sistema de gestão de bases de dados (SGBD) ajuda a organizar e gerir informação armazenada em uma base de dados de forma estruturada em tabelas.
3) As tabelas, campos, registos e chaves primárias e externas são elementos fundamentais do modelo relacional de bases de dados.
O documento discute conceitos fundamentais de bancos de dados, incluindo razões para armazenar informações, história do armazenamento de dados, modelos de banco de dados, modelagem de dados usando o modelo entidade-relacionamento, e componentes-chave de bancos de dados como entidades, atributos e relacionamentos.
O documento descreve o modelo entidade-relacionamento para bancos de dados, incluindo conceitos como entidades, atributos, relacionamentos, cardinalidades, chaves, generalização e outros. É apresentado um exemplo detalhado de um modelo E-R para uma companhia com entidades como funcionário, departamento, projeto e seus relacionamentos.
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
O documento fornece o currículo de Ricardo Terra, incluindo seus detalhes de contato, formação acadêmica e experiência profissional. Ele também apresenta os conceitos básicos do modelo entidade-relacionamento (ER), incluindo entidades, relacionamentos e atributos.
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
Este documento fornece uma introdução sobre banco de dados. Explica o que é um banco de dados, alguns termos comuns como dados, registros e arquivos. Também discute os modelos de dados hierárquico, em rede e relacional, e como os bancos de dados melhoram em relação aos sistemas de arquivos tradicionais.
O documento apresenta um resumo sobre modelagem conceitual de banco de dados. Aborda conceitos como entidade, atributos, relacionamentos, cardinalidades e tipos de entidades. Fornece exemplos para ilustrar cada tópico e exercícios para fixação dos conceitos.
O documento descreve os conceitos básicos de bancos de dados, incluindo: (1) Bancos de dados são conjuntos de dados organizados com estrutura regular para armazenar informações; (2) O modelo relacional é o mais comum, representando dados em tabelas com linhas e colunas; (3) Bancos de dados são usados em muitas aplicações para armazenar dados compartilhados.
O documento descreve os principais conceitos de modelagem de dados usando Diagrama Entidade Relacionamento (DER), incluindo entidades, atributos, chaves primárias e relacionamentos. Exemplos de entidades em um sistema escolar são apresentados para ilustrar esses conceitos.
Modelagem relacional e normalização de dadosjulianaveregue
1) O documento discute modelagem relacional de dados e normalização para evitar anomalias.
2) A normalização divide tabelas com múltiplos assuntos em tabelas separadas com um único assunto cada.
3) Isso minimiza redundâncias, inconsistências e facilita manutenção do banco de dados.
1) O Modelo de Dados representa as necessidades de dados e como eles se relacionam em um determinado ambiente.
2) É composto de entidades, atributos, relacionamentos e dicionário de dados.
3) As entidades representam coisas ou conceitos sobre os quais se guardam informações no ambiente modelado.
Este documento fornece um resumo de um curso sobre modelagem e projeto de banco de dados. Ele discute tópicos como modelagem de dados, projeto de banco de dados, normalização, linguagem SQL e tipos de dados.
1) As junções permitem combinar dados de múltiplas tabelas com base em relações entre elas, permitindo exibir relatórios mais elaborados.
2) Uma subconsulta é uma consulta SQL aninhada dentro de outra, e pode ser usada para comparar valores ou verificar a existência de registros.
3) Junções e subconsultas são ferramentas poderosas para recuperar e analisar dados relacionais em bancos de dados.
O documento descreve o processo de normalização de dados, que envolve transformar tabelas não normalizadas em tabelas normalizadas através de três formas normais, eliminando redundâncias. Apresenta os conceitos de dependência funcional e as etapas de passagem à primeira, segunda e terceira forma normal, ilustrando com um exemplo de normalização de um relatório de alocação de projetos.
O documento discute o conceito e objetivos da normalização de dados. A normalização é um processo que organiza tabelas de banco de dados de forma a eliminar redundâncias e anomalias, como atualização, inserção ou remoção inconsistentes de dados. Ela visa deixar as tabelas em Formas Normais que garantam a integridade referencial dos dados.
Clean Architecture promove a independência entre as camadas de uma aplicação, dividindo-a em Entidades, Casos de Uso, Controller e Frameworks & Drivers. Isso permite que cada camada seja testada e desenvolvida isoladamente. A arquitetura é demonstrada em Go com pacotes para Entidades, Interface, Serviço, Repositórios e API, permitindo testes por camada.
O documento descreve um curso de desenvolvimento de aplicações desktop, abordando competências como instalação e configuração de aplicações, interface gráfica, acesso a bancos de dados e geração de relatórios. Também define critérios de avaliação, regras de conduta, material necessário e conteúdo programático incluindo Delphi, componentes, conexão com bancos e exercícios.
O documento descreve os princípios da Clean Architecture em PHP, que divide o código em 4 camadas (Entidades, Use Cases, Controller e Framework & Driver) para torná-lo independente de frameworks, bancos de dados e interfaces. Ele fornece um exemplo completo no GitHub para demonstrar como implementar essa arquitetura em um projeto PHP.
O documento discute os conceitos fundamentais de modelagem de dados, incluindo:
1) Entidades, atributos e chaves primárias definem as tabelas e campos do banco de dados.
2) Relacionamentos entre entidades representam como os dados serão ligados entre tabelas.
3) A normalização organiza os dados em tabelas separadas para evitar duplicação e inconsistências.
O documento apresenta os principais conceitos de sistemas de banco de dados, incluindo:
1) Definições de banco de dados e sistema de gerenciamento de banco de dados (SGBD);
2) Características e componentes de sistemas de banco de dados;
3) Modelos de dados, esquemas e instâncias;
4) Tipos de modelos de dados, linguagens e utilitários.
Weak Entity Types
- A weak entity type does not have its own identifier (primary key).
- Its instances are identified by their relationship to a strong entity type, called its identifying or owner entity type.
- The relationship plus some of the weak entity's attributes make up a composite primary key.
For example, in an employee-dependent relationship:
- Dependent is a weak entity type because a dependent cannot be uniquely identified without knowing which employee it belongs to.
- Employee is the identifying/owner entity type.
- The relationship plus the dependent's attributes like name, gender, etc. make up the composite primary key.
So in summary:
- Weak entities are identified through their
O documento apresenta os principais conceitos relacionados a sistemas de banco de dados, incluindo:
1) Definições de banco de dados e sistemas de gerenciamento de banco de dados (SGBD);
2) Características e componentes de sistemas de banco de dados;
3) Modelos de dados, esquemas e instâncias;
4) Tipos de modelos de dados, linguagens e utilitários.
Este documento fornece uma visão geral da tecnologia de reconhecimento e extração de dados de documentos da Open Text, incluindo:
(1) As principais funcionalidades do Open Text Capture Center como classificação, reconhecimento e extração de dados de documentos;
(2) Exemplos de casos de uso comuns como digitalização de correspondência e processamento de notas fiscais;
(3) Uma amostra dos principais campos que podem ser extraídos de notas fiscais usando o Capture Center.
O documento discute os conceitos fundamentais de banco de dados, incluindo:
1) Definição de banco de dados como uma estrutura lógica para armazenar dados de forma organizada;
2) Importância da modelagem de dados para representar conceitos de negócios;
3) Principais elementos de um banco de dados como tabelas, colunas, linhas.
1) Bancos de dados são conjuntos de dados organizados com estrutura regular para armazenar informações. São mantidos e acessados por meio de sistemas gerenciadores de banco de dados.
2) O modelo relacional, onde as estruturas têm a forma de tabelas compostas por linhas e colunas, é o mais adotado atualmente.
3) Um banco de dados descreve um sistema escolar com tabelas para alunos e suas notas, relacionadas pelo número de matrícula para associar cada aluno às suas pontuações.
1) O documento descreve o que são bancos de dados, como são organizados e mantidos. 2) Os principais modelos de dados são o modelo relacional, onde as estruturas têm a forma de tabelas compostas por linhas e colunas. 3) Um banco de dados é uma coleção de dados relacionados armazenados e acessados por meio de um sistema gerenciador de banco de dados.
Padronizar campos do cadastro de Clientes e Fornecedores para atender aos arquivos do SPED, e abreviar palavras e expressões recorrentes é uma necessidade para adequar os dados de entrada aos limites de caracteres em uso na base de dados.
O KeyCad-abreviador é uma solução para fazer esta tarefa de forma automatizada, e parametrizável pelo usuário.
Padronizar campos do cadastro de Clientes e Fornecedores para atender aos arquivos do SPED, e abreviar palavras e expressões recorrentes é uma necessidade para adequar os dados de entrada aos limites de caracteres em uso na base de dados.
O KeyCad-abreviador é uma solução para fazer esta tarefa de forma automatizada, e parametrizável pelo usuário.
A Clean Architecture divide o código em 4 camadas: Entidades, Use Cases, Controller e Frameworks & Drivers. Isso permite que o código seja independente de frameworks, testável, e independente da interface do usuário e banco de dados. O documento fornece exemplos de como implementar essa arquitetura em Go e PHP.
O documento apresenta os conceitos de registros e vetores de registros em linguagem de programação. São definidos registros para armazenar informações heterogêneas como nome, CPF, data de nascimento. Em seguida, são mostrados exemplos de declaração de vetores de registros para manipular conjuntos de dados complexos, como um cadastro de alunos. Por fim, exercícios propõem a aplicação dos registros em problemas reais.
Documento de requisitos_-_especificacoes 01gtiprotec
Este documento apresenta os requisitos iniciais para o desenvolvimento de um sistema de controle financeiro. Ele inclui a identificação dos membros do grupo, os requisitos funcionais e não funcionais, e um glossário com termos importantes. Os requisitos funcionais descrevem as funcionalidades do sistema como lançamentos de receitas e despesas classificadas em categorias. Os requisitos não funcionais incluem requisitos de usabilidade, desempenho e segurança.
Modelagem relacional e normalização de dadosjulianaveregue
1) O documento discute modelagem relacional de dados e normalização para evitar anomalias.
2) A normalização divide tabelas com múltiplos assuntos em tabelas separadas com um único assunto cada.
3) Isso minimiza redundâncias, inconsistências e facilita manutenção do banco de dados.
1) O Modelo de Dados representa as necessidades de dados e como eles se relacionam em um determinado ambiente.
2) É composto de entidades, atributos, relacionamentos e dicionário de dados.
3) As entidades representam coisas ou conceitos sobre os quais se guardam informações no ambiente modelado.
Este documento fornece um resumo de um curso sobre modelagem e projeto de banco de dados. Ele discute tópicos como modelagem de dados, projeto de banco de dados, normalização, linguagem SQL e tipos de dados.
1) As junções permitem combinar dados de múltiplas tabelas com base em relações entre elas, permitindo exibir relatórios mais elaborados.
2) Uma subconsulta é uma consulta SQL aninhada dentro de outra, e pode ser usada para comparar valores ou verificar a existência de registros.
3) Junções e subconsultas são ferramentas poderosas para recuperar e analisar dados relacionais em bancos de dados.
O documento descreve o processo de normalização de dados, que envolve transformar tabelas não normalizadas em tabelas normalizadas através de três formas normais, eliminando redundâncias. Apresenta os conceitos de dependência funcional e as etapas de passagem à primeira, segunda e terceira forma normal, ilustrando com um exemplo de normalização de um relatório de alocação de projetos.
O documento discute o conceito e objetivos da normalização de dados. A normalização é um processo que organiza tabelas de banco de dados de forma a eliminar redundâncias e anomalias, como atualização, inserção ou remoção inconsistentes de dados. Ela visa deixar as tabelas em Formas Normais que garantam a integridade referencial dos dados.
Clean Architecture promove a independência entre as camadas de uma aplicação, dividindo-a em Entidades, Casos de Uso, Controller e Frameworks & Drivers. Isso permite que cada camada seja testada e desenvolvida isoladamente. A arquitetura é demonstrada em Go com pacotes para Entidades, Interface, Serviço, Repositórios e API, permitindo testes por camada.
O documento descreve um curso de desenvolvimento de aplicações desktop, abordando competências como instalação e configuração de aplicações, interface gráfica, acesso a bancos de dados e geração de relatórios. Também define critérios de avaliação, regras de conduta, material necessário e conteúdo programático incluindo Delphi, componentes, conexão com bancos e exercícios.
O documento descreve os princípios da Clean Architecture em PHP, que divide o código em 4 camadas (Entidades, Use Cases, Controller e Framework & Driver) para torná-lo independente de frameworks, bancos de dados e interfaces. Ele fornece um exemplo completo no GitHub para demonstrar como implementar essa arquitetura em um projeto PHP.
O documento discute os conceitos fundamentais de modelagem de dados, incluindo:
1) Entidades, atributos e chaves primárias definem as tabelas e campos do banco de dados.
2) Relacionamentos entre entidades representam como os dados serão ligados entre tabelas.
3) A normalização organiza os dados em tabelas separadas para evitar duplicação e inconsistências.
O documento apresenta os principais conceitos de sistemas de banco de dados, incluindo:
1) Definições de banco de dados e sistema de gerenciamento de banco de dados (SGBD);
2) Características e componentes de sistemas de banco de dados;
3) Modelos de dados, esquemas e instâncias;
4) Tipos de modelos de dados, linguagens e utilitários.
Weak Entity Types
- A weak entity type does not have its own identifier (primary key).
- Its instances are identified by their relationship to a strong entity type, called its identifying or owner entity type.
- The relationship plus some of the weak entity's attributes make up a composite primary key.
For example, in an employee-dependent relationship:
- Dependent is a weak entity type because a dependent cannot be uniquely identified without knowing which employee it belongs to.
- Employee is the identifying/owner entity type.
- The relationship plus the dependent's attributes like name, gender, etc. make up the composite primary key.
So in summary:
- Weak entities are identified through their
O documento apresenta os principais conceitos relacionados a sistemas de banco de dados, incluindo:
1) Definições de banco de dados e sistemas de gerenciamento de banco de dados (SGBD);
2) Características e componentes de sistemas de banco de dados;
3) Modelos de dados, esquemas e instâncias;
4) Tipos de modelos de dados, linguagens e utilitários.
Este documento fornece uma visão geral da tecnologia de reconhecimento e extração de dados de documentos da Open Text, incluindo:
(1) As principais funcionalidades do Open Text Capture Center como classificação, reconhecimento e extração de dados de documentos;
(2) Exemplos de casos de uso comuns como digitalização de correspondência e processamento de notas fiscais;
(3) Uma amostra dos principais campos que podem ser extraídos de notas fiscais usando o Capture Center.
O documento discute os conceitos fundamentais de banco de dados, incluindo:
1) Definição de banco de dados como uma estrutura lógica para armazenar dados de forma organizada;
2) Importância da modelagem de dados para representar conceitos de negócios;
3) Principais elementos de um banco de dados como tabelas, colunas, linhas.
1) Bancos de dados são conjuntos de dados organizados com estrutura regular para armazenar informações. São mantidos e acessados por meio de sistemas gerenciadores de banco de dados.
2) O modelo relacional, onde as estruturas têm a forma de tabelas compostas por linhas e colunas, é o mais adotado atualmente.
3) Um banco de dados descreve um sistema escolar com tabelas para alunos e suas notas, relacionadas pelo número de matrícula para associar cada aluno às suas pontuações.
1) O documento descreve o que são bancos de dados, como são organizados e mantidos. 2) Os principais modelos de dados são o modelo relacional, onde as estruturas têm a forma de tabelas compostas por linhas e colunas. 3) Um banco de dados é uma coleção de dados relacionados armazenados e acessados por meio de um sistema gerenciador de banco de dados.
Padronizar campos do cadastro de Clientes e Fornecedores para atender aos arquivos do SPED, e abreviar palavras e expressões recorrentes é uma necessidade para adequar os dados de entrada aos limites de caracteres em uso na base de dados.
O KeyCad-abreviador é uma solução para fazer esta tarefa de forma automatizada, e parametrizável pelo usuário.
Padronizar campos do cadastro de Clientes e Fornecedores para atender aos arquivos do SPED, e abreviar palavras e expressões recorrentes é uma necessidade para adequar os dados de entrada aos limites de caracteres em uso na base de dados.
O KeyCad-abreviador é uma solução para fazer esta tarefa de forma automatizada, e parametrizável pelo usuário.
A Clean Architecture divide o código em 4 camadas: Entidades, Use Cases, Controller e Frameworks & Drivers. Isso permite que o código seja independente de frameworks, testável, e independente da interface do usuário e banco de dados. O documento fornece exemplos de como implementar essa arquitetura em Go e PHP.
O documento apresenta os conceitos de registros e vetores de registros em linguagem de programação. São definidos registros para armazenar informações heterogêneas como nome, CPF, data de nascimento. Em seguida, são mostrados exemplos de declaração de vetores de registros para manipular conjuntos de dados complexos, como um cadastro de alunos. Por fim, exercícios propõem a aplicação dos registros em problemas reais.
Documento de requisitos_-_especificacoes 01gtiprotec
Este documento apresenta os requisitos iniciais para o desenvolvimento de um sistema de controle financeiro. Ele inclui a identificação dos membros do grupo, os requisitos funcionais e não funcionais, e um glossário com termos importantes. Os requisitos funcionais descrevem as funcionalidades do sistema como lançamentos de receitas e despesas classificadas em categorias. Os requisitos não funcionais incluem requisitos de usabilidade, desempenho e segurança.
O documento discute diferentes formas de representar algoritmos, incluindo descrição narrativa, fluxogramas e pseudocódigo. Ele também explica conceitos-chave como variáveis, tipos de dados, operadores e declaração de variáveis em algoritmos.
Novo microsoft office power point presentationmachadocarla
Este documento discute as vantagens de organizar informação em bases de dados, incluindo permitir a fácil manipulação e pesquisa de grandes conjuntos de dados, eliminar redundâncias, e usar pouco espaço físico. Também explica conceitos-chave como tabelas, campos, registros e relacionamentos entre tabelas.
Este documento discute se a formatação e concatenação de dados em relatórios constituem "dados derivados" segundo as regras da Análise de Pontos de Função (APF). Também discute casos em que dados são convertidos para extenso ou com formatação específica. Geralmente essas ações não são consideradas geração de dados derivados, a menos que envolvam etapas complexas de processamento além da mera formatação ou concatenação.
O documento descreve os elementos e funcionalidades de uma web panel em GeneXus. As web panels permitem:
1) Exibir dados através de um formulário web com variáveis, atributos e controles;
2) Definir regras, condições, subrotinas e eventos para interação do usuário;
3) Carregar dados de tabelas relacionadas automaticamente.
2. Entidades
} Aplicações precisam armazenar dados sobre as mais
diversas entidades, que podem ser concretas ou
abstratas
} Funcionário de uma empresa (concreto)
} Carros de uma locadora de veículos (concreto)
} Contas-corrente dos clientes de um banco (abstrato)
} Ligações telefônicas dos clientes de uma empresa de telefonia
(abstrato)
3. Atributos
} Cada uma dessas entidades pode ser descrita por um
conjunto de atributos
} Funcionário: nome, CPF, data-nascimento, salário
} Carro: marca, modelo, ano-fabricação, placa
} Conta-Corrente: agência, conta, saldo
} Ligações Telefônicas: data, origem, destino, duração
} Os atributos também podem ser chamados de campos
4. Registros
} Indivíduos dessas entidades possuem um valor para cada
um desses atributos (chamados de pares atributo-
valor)
} Um conjunto de pares atributo-valor que identifica um
indivíduo de uma entidade é chamado de registro
6. Tabela
} Uma tabela é um conjunto ordenado de registros. Uma
tabela pode ser armazenada em memória principal ou em
memória secundária (disco)
} Nesse segundo caso, também costuma ser chamada de
arquivo
7. Exemplo: Arquivo de Funcionários
Nome
CPF
Data-‐Nascimento
Salário
João
012345678-‐90
10/04/1980
3000
Maria
234567890-‐12
25/07/1978
5000
Lúcia
345678901-‐23
27/04/1981
1500
IMPORTANTE: Todos os registros de uma mesma tabela possuem a
mesma estrutura (mesmo conjunto de atributos/campos)
8. Problema: encontrar registros
} Problema comum de diversas aplicações: encontrar um ou
mais registros em uma tabela
} Encontrar o empregado Maria
} Encontrar todos os empregados que ganham 3000
} Encontrar todos os empregados que nasceram em 27/04/1981
9. Conceito de Chave
} Dados usados para encontrar um registro: chave
} Chave: subconjunto de atributos que identifica um
determinado registro
10. Chave Primária e Secundária
} Chave primária: subconjunto de atributos que identifica
unicamente um determinado registro Exemplo: CPF do
funcionário ou RG do funcionário
} Na hipótese de uma chave primária ser formada por uma
combinação de campos, essa combinação deve ser mínima (não
deve conter campos supérfulos)
} Eventualmente, podemos encontrar mais de uma combinação
mínima de campos que forma uma chave primária
} Chave secundária: subconjunto de atributos que
identificam um conjunto de registros de uma tabela
Exemplo: Nome do funcionário
11. Tabelas
} Aplicações reais lidam com várias tabelas, cada uma delas
representando uma entidade
} Uma aplicação de controle bancário precisaria de
quais tabelas?
12. Aplicação Bancária
} Uma aplicação de controle bancário precisaria de
quais tabelas?
} Cliente
} Agência
} Conta-Corrente
13. Certa redundância é necessária
} Neste caso, é necessário correlacionar os dados, para que
seja possível saber que conta pertence a que agência, e
que conta pertence a que cliente
} Para isso, é usual repetir algum dado (um código,por
exemplo) no outro arquivo
} Cliente: CodCliente, Nome, CPF, Endereço
} Agência: CodAgencia, NumeroAgencia, Endereco
} Conta-Corrente: CodAgencia, CodCliente, CodConta,
NumeroConta, Saldo
14. Certa redundância é necessária
} Neste caso, é necessário correlacionar os dados, para que
seja possível saber que conta pertence a que agência, e
que conta pertence a que cliente
} Para isso, é usual repetir algum dado (um código,por
exemplo) no outro arquivo
} Cliente: CodCliente, Nome, CPF, Endereço
} Agência: CodAgencia, NumeroAgencia, Endereco
} Conta-Corrente: CodAgencia, CodCliente, CodConta, Numero
Conta, Saldo
Quais são as chaves primárias e secundárias deste
exemplo?
16. Discussão sobre chaves
} Por quê não usar CPF como chave primária de cliente?
Por quê os atributos artificiais (código)?
17. Exercício
Deseja-se automatizar uma locadora de automóveis.A locadora
possui filiais espalhadas por todo país. Cada filial possui um código
que a identifica, um telefone e um endereço. Cada filial da
locadora sedia um conjunto de veículos que ela aluga. O veículo é
identificado por um número sequencial que o distingue dos
demais veículos da filial. Para o veículo é importante saber a placa,
data de vencimento do seguro, nome do modelo, número de
portas e se possui ar-condicionado ou não. Quando um veículo é
alugado é fechado um contrato de aluguel. Cada contrato possui
um número identificador, uma data de saída do veículo, uma data
de retorno provável, para veículos ainda não retornados, e uma
data de retorno efetivo, para veículos já retornados. O contrato é
feito para um veículo e um cliente. Para os clientes é preciso
armazenar seu nome, CPF, endereço, o telefone, bem como o
número e data de expiração de seu cartão de crédito.
18. Exercício
} Para o cenário das locadoras, identificar:
} Entidades
} Atributos
} Chaves primárias
20. Banco de Dados
} Esse conjunto de arquivos pode ser considerado um
banco de Dados?
21. Características de um Sistema de Gerência
de Banco de Dados
} Natureza auto-descritiva do sistema de banco de dados:
banco de dados possui um catálogo onde estão descritas as
estruturas e tipos de dados de cada tabela e suas restrições –
ex. quais são as chaves primárias de cada tabela
} Isolamento entre os programas e os dados, e a
abstração dos dados: em programação com arquivos a
estrutura dos arquivos é embutida dentro das aplicações. Isso
não acontece quando se usa banco de dados.
} Suporte para as múltiplas visões dos dados: usuários
diferentes podem ver porções diferentes dos dados
} Compartilhamento de dados e processamento de
transações multi-usuários
22. Características de um Sistema de Gerência
de Banco de Dados
} Natureza auto-descritiva do sistema de banco de dados:
banco de dados possui um catálogo onde estão descritas as
estruturas e tipos de dados de cada tabela e suas restrições –
ex. quais são as chaves primárias de cada tabela
} Isolamento entre os programas e os dados, e a
abstração dos dados: em programação com arquivos a
estrutura dos arquivos é embutida dentro das aplicações. Isso
não acontece quando se usa banco de dados.
} Suporte para as múltiplas visões dos dados: usuários
diferentes podem ver porções diferentes dos dados
} Compartilhamento de dados e processamento de
transações multi-usuários NÃO É O NOSSO FOCO
NESSA DISCIPLINA!
23. Níveis de Organização das tabelas/arquivos
} Organização Lógica dos dados: é a visão que o usuário
tem dos dados, com base em entidades, seus atributos e
seus relacionamentos
} Organização Física dos dados: é a maneira pela qual as
informações ficam armazenadas nos dispositivos
periféricos (disco, pen-drive, etc.)
24. Dependência entre programas e dados
} Os programas de computador são mais ou menos
dependentes da organização física dos dados
} Eles podem ser classificados em quatro categorias
25. Categoria 1:
Programas Dependentes dos Dados
} Programas têm acesso aos dados especificando endereços
absolutos de células de armazenamento
} Se os dados mudarem de lugar, os programas que os
acessam precisam ser modificados
} Ocorre nas chamadas de baixo nível dos sistemas
operacionais
} Exemplo: informação sobre espaço livre em um arquivo
em um sistema operacional pode ser guardada em um
bloco particular do disco
26. Categoria 2:
Independência Física dos Dados
} Programas acessam a memória pelo nome e não por
endereço (memória primária), ou pela posição relativa ao
início do arquivo (memória secundária)
} O mapeamento (nome → endereço) é feito pelo sistema
operacional
} Exemplo: programas escritos em linguagens de Terceira
Geração que só precisam conhecer a organização lógica
dos dados (C, Java, Pascal...)
} Programas dependem da estrutura lógica dos arquivos
27. Categoria 3:
Independência Lógica Parcial dos Dados
} Programas desta categoria podem operar sobre diversos
arquivos (com estruturas diferentes) sem serem
modificados.
} Estes programas buscam a estrutura dos dados nas
informações disponíveis no meio do armazenamento e
fazem uma adaptação em tempo de execução do
programa.
} Caso a adaptação ocorresse em tempo de compilação,
seria o caso de programas de categoria 2
} Exemplo de operação: ler o próximo registro de um
arquivo
28. Categoria 4:
Independência Lógica dos Dados
} Programas dessa categoria armazenam a descrição dos
dados junto com eles
} Por isso, os programas não necessitam definir a estrutura
dos dados
} Exemplo: programas que utilizam SGBDs
29. Operações sobre arquivos
} Programas que lidam com arquivos realizam os seguintes
tipos de operações sobre eles:
} Criação: alocação e inicialização da área de dados, assim como
de seus descritores
} Destruição: liberação da área de dados e descritores usados na
representação da tabela
} Inserção: inclusão de novo registro na tabela
} Exclusão: remoção de um registro da tabela
} Alteração: modificação dos valores de um ou mais atributos/
campos da tabela
} Consulta: obtenção dos valores de todos os campos de um
registro, dada uma chave de entrada
33. I/O Stream
} Um I/O Stream em Java representa uma fonte de entrada ou
saída destino
} Um stream pode representar diferentes tipos de fonte ou
destino:
} Arquivos em disco
} Dispositivos
} Outros programas
} Estruturas em memória
} …
} Suportam diferentes tipos de dados:
} Bytes
} Tipos primitivos de dados (inteiros, strings, …)
} Caracteres
} Objetos
34. I/O Stream
} Independente de como funcionam internamente, todos os
streams seguem um modelo simples de interação com
programas
} Um stream é uma sequencia de dados
} Para leitura: input stream
} Para gravação: output stream
35. I/O Input Stream
} Um programa utiliza um Input Stream para ler dados
de uma fonte, um item de cada vez
36. I/O Output Stream
} Um programa utiliza um Output Stream para gravar
dados em um destino, um item de cada vez
37. Na nossa disciplina
} Fonte e destino são arquivos
} Exemplo de arquivo a ser manipulado
xanadu.txt
In Xanadu did Kubla Khan
A stately pleasure-dome decree:
Where Alph, the sacred river, ran
Through caverns measureless to man
Down to a sunless sea.
40. Exemplo
} Ver arquivo CopyBytes.java
} NOTA: Método read() retorna um int ao invés de um
byte
} Isso acontece para que seja possível o método retornar
-1 quando o stream terminar
41. Considerações sobre o exemplo
} Sempre feche os streams utilizados
} Ao fechá-los, vc libera a memória consumida por eles
} Pode ocorrer erro ao abrir o InputStream ou o
OutputStream (ou ambos)
} Por isso é importante testar se são diferentes de null antes de
fechá-los
42. ByteStream
} Muito baixo nível
} Existem outros tipos de stream para tratar outros tipos
de dados
} Mas são importantes porque todos os outros são
construídos sobre ele
} Nosso arquivo exemplo é um arquivo de texto, então
vamos modificar o programa um pouco para tratar isso
43. Character Stream
} Mesmo princípio de funcionamento do ByteStream
} Faz conversão automática da representação dos
caracteres em Java (que usa Unicode) para o enconding
de caracteres local
} Ver aquivo CopyCharacter.java
} Principais diferenças entre este exemplo e o anterior:
} Uso de FileReader ao invés de FileInputStream
} Uso de FileWriter ao invés de FileOutputStream
44. Entrada e Saída
} Neste exemplo, o disco é acessado para ler cada
caractere do arquivo, e depois novamente para gravar
cada caractere
} MUITO LENTO!!
} Solução: utilizar BufferedStreams
} O sistema operacional faz I/O apenas quando o Buffer está
vazio
45. I/O Orientada a linhas
} Para arquivos texto, é possível ler linhas inteiras de uma
só vez, usando um buffer: BufferedReader (para leitura) e
PrintWriter (para gravação)
} Linha:
} delimitada por um CR ou LF ("rn")
} delimitada por CR ("r")
} delimitada por LF ("n")
} Ver arquivo CopyLines.java
46. Foco da disciplina
} Arquivos binários ao invés de arquivos texto
} Como implementar um programa que grava registros de
funcionários, e depois lê esses registros?
} Usar DataStreams
} Possuem métodos específicos para ler/gravar tipos específicos
(inteiro, string, etc)
47. DataStreams
} Exemplo do funcionário
} Primeiro problema: em Java não existe o conceito de
registro
} Solução de contorno:
} Criar uma classe Funcionário com os atributos do funcionário
48. Classe Funcionário
public class Funcionario {
public int codFuncionario;
public String nome;
public String cpf;
public String dataNascimento;
public float salario;
}
NOTA IMPORTANTE: não é uma boa prática de programação utilizar atributos
públicos nas classes. Na disciplina, vamos adotar esta opção apenas para simplificar
os exemplos. O correto seria implementar métodos get e set para cada atributo.
49. Manipulação
} DataStream detecta final de arquivo lançando uma
exceção java.io.EOFException
} Lógica para testar final de arquivo agora não é mais baseada no
teste de valor -1
} Capturar a exceção e fechar o DataStream
} Ver arquivo ManipulaFuncionario.java
50. Exercício
} Alterar a classe ManipulaFuncionario para ler os dados do
funcionário a ser gravado do teclado (atenção: criar uma
nova classe! Não sobre-escrever a classe!)
} A cada funcionário informado, perguntar se deseja ler os
dados de mais um funcionário
} Se sim, ler mais um funcionário
} Se não, gravar todos os funcionários lidos
51. Orientação a objetos
} Exemplo anterior fere os princípios de orientação a
objetos
} Ideal é dar a responsabilidade de ler registro e gravar registro à
classe Funcionário
} Ver arquivo FuncionarioOO.java
} Ver arquivo ManipulaFuncionarioOO.java
52. Flush
} Os métodos que utilizam buffer para gravação só fazem a
gravação em disco quando o buffer está cheio
} Às vezes é necessário ter mais controle sobre quando os
dados realmente serão gravados
} AutoFlush:Algumas classes buffered output (ex. PrintWriter)
possuem um atributo autoFlush. Quando este atributo está
ligado (true), o buffer é gravado em disco a cada vez que uma
operação println é executada
} Alternativa: Método flush força gravação do buffer em disco
55. Exercício
} Modifique as classes para lidar com registros de conta-
corrente
} Dois arquivos:
} Agência (Cod, Nome, Gerente)
} Conta-Corrente (Cod, CodAgencia, Saldo)
} Usuário deve poder escolher o que quer cadastrar
} Dados devem ser lidos do teclado
} Aplicação deve ter opção de Cadastrar, Ler ou Sair