Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Uma linguagem de programao um mtodo padronizado para comunicar instrues para um computador, ou seja, um conjunto de regras sintticas e semnticas usadas para definir um programa de computador. Linguagens de programao podem ser usadas para expressar algoritmos com preciso. O conjunto de palavras compostos de acordo com essas regras, constituem o cdigo fonte de um software. Esse cdigo fonte depois traduzido para cdigo de mquina, que executado pelo processador. Uma das principais metas das linguagens de programao permitir que programadores tenha uma maior produtividade. Linguagens de programao so ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez. Linguagens de programao tambm tornam os programas menos dependentes de computadores ou ambientes computacionais especficos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programao so traduzidos para o cdigo de mquina do computador no qual ser executado em vez de ser diretamente executado. Exemplo: Fortran, uma das primeiras linguagens de programao, era esta independncia da mquina onde seria executada.
Interpretao e compilao
Uma linguagem de programao pode ser convertida, ou traduzida, em cdigo de mquina por compilao (que traduz o cdigo ou interpretada por um processo denominado interpretao. Em ambas ocorre a traduo do cdigo fonte para cdigo de mquina.
Pgina 1
A verso compilada do programa tipicamente armazenada, de forma que o programa pode ser executado um nmero indefinido de vezes sem que seja necessria nova compilao, o que compensa o tempo gasto na compilao. Isso acontece com linguagens como Pascal e C. Se o texto do programa executado medida que vai sendo traduzido, como em Javascript, BASIC, Python ou Perl, num processo de traduo de trechos seguidos de sua execuo imediata, ento diz-se que o programa foi interpretado e que o mecanismo utilizado para a traduo um interpretador. Programas interpretados so geralmente mais lentos do que os compilados, mas so tambm geralmente mais flexveis, j que podem interagir com o ambiente mais facilmente. Embora haja essa distino entre linguagens interpretadas e compiladas, as coisas nem sempre so to simples. H linguagens compiladas para um cdigo de mquina de uma mquina virtual (sendo esta mquina virtual apenas mais um software, que emula a mquina virtual sendo executado em uma mquina real), como Java (compila para a plataforma Java) e C (compila para a plataforma CLI). E tambm h outras formas de interpretar em que os cdigos fontes, ao invs de serem interpretados linha-a-linha, tm blocos "compilados" para a memria, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos mdulos so chamados vrias vezes, tcnica esta conhecida como JIT (just-in-time). Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o cdigo Java para o cdigo intermedirio (e portvel) da JVM (Mquina virtual Java (do ingls Java Virtual Machine - JVM). As JVMs originais interpretavam esse cdigo, de acordo com o cdigo de mquina do computador hospedeiro, porm atualmente elas compilam segundo a tcnica JIT o cdigo JVM para cdigo hospedeiro.
Pgina 2
Programao modular
Programao modular uma forma de programao no qual o desenvolvimento das rotinas de programao feito atravs de mdulos, que so interligados entre si atravs de uma interface comum. Exemplos de linguagens que orientaram seu projeto para este aspecto esto as linguagens Modula-2, desenvolvida por Niklaus Wirth e a Modula-3.
Pgina 3
Na programao orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos mtodos) e estados possveis (atributos) de seus objetos, assim como o relacionamento com outros objetos
Modelo de programao
Os modelos se dividem em dois grandes grupos: imperativo e declarativo.
Modelo Imperativo
Os modelos imperativos so aqueles que facilitam a computao por meio de mudanas de estado. Se dividem em: O Modelo procedural. Os programas so executados atravs de chamadas sucessivas a procedimentos separados. Exemplos de linguagens deste Fortran e o BASIC. O modelo de estruturas de blocos. A caracterstica marcante deste paradigma so os escopos aninhados. Exemplos de linguagens Algol 60, Pascal e C. O modelo de orientao a objetos. Linguagens que suportam a interao entre objetos. Exemplos de linguagens so C++,Java, Python e Ruby. O modelo da computao distribuda. Suporta mais de uma rotina possa executar independentemente. Um exemplo de linguagem Ada.
Modelos Declarativos
So aqueles nos quais um programa especifica uma relao ou funo. Se dividem em:
Pgina 4
O modelo funcional. Na programao funcional, o mapeamento entre os valores de entrada e saida so alcanados mais diretamente. Um programa uma funo (ou grupo de funes), tipicamente constituda de outras funes mais simples. Exemplos de linguagens Lisp, Scheme e Haskell. O modelo da programao lgica. Baseia na noo de que um programa programa uma relao ao invs de um mapeamento. Exemplos de linguagens deste Prolog e a linguagem Gdel.
Primeira gerao - So linguagens onde suas estruturas de controle so aparentemente orientadas a mquina. As instrues condicionais no so aninhadas e dependem fortemente de instrues de desvio incondicional como o GOTO. Uma linguagem tpica desta gerao a linguagem Fortran.
Pgina 5
Segunda gerao - So linguagens onde as estruturas de controle so estruturadas de forma a minimizar ou dispensar o uso de instrues GOTO. Uma das grandes contribuies desta gerao foi suas estruturas de nomes, que eram hierarquicamente aninhadas. Isto permitiu melhor controle de espaos de nomes e uma eficiente alocao dinmica de memria. Uma linguagem tpica desta gerao o Algol 60.
Terceira gerao - So linguagens que do nfase a simplicidade e eficincia. Uma linguagem tpica desta gerao a linguagem Pascal. As estruturas de dados desta gerao mostram um deslocamento da mquina para a aplicao. As estruturas de controle so mais simples e eficientes.
Quarta gerao - Esta gerao essencialmente o sinnimo para linguagens com abstrao de dados. A maioria das linguagens desta gerao focam na modularizao e no encapsulamento. Uma linguagem tpica desta gerao a linguagem Ada.
Quinta gerao - Nesta gerao a orientao a objeto e o modelo funcional, modelo lgico. Resumidamente:
Primeira gerao - linguagem de mquina. Segunda gerao - linguagens de montagem (assembly). Terceira gerao - Linguagens procedurais. Quarta gerao - Linguagens aplicativas. Quinta gerao - Linguagens voltadas a Inteligncia artificial como as linguagens lgicas (Prolog) e as linguagens funcionais (Lisp). Sexta gerao - Redes neurais.
Lista de linguagens
1. C
Pgina 6
2. Java
3. Objective-C 4. C++ 5. PHP 6. C 7. Visual Basic 8. Python 9. Perl 10. JavaScript 11. Ruby
12. Visual Basic .NET 13. Transact-SQL 14. Lisp 15. Pascal 16. Bash 17. PL/SQL 18. Delphi / Object Pascal 19. Ada 20. MATLAB
Um data mart uma subdiviso ou subconjunto de um data Warehouse. Os data marts so como pequenas fatias de data Warehouse, que armazenam subconjuntos de dados. O data mart direcionado para uma linha de negcios ou equipe, sendo que a sua informao costuma pertencer a um nico departamento.
Inconsistncias so identificadas e solucionadas antes dos dados serem carregados, o que facilita a execuo da anlise e de relatrios;
Contribuem para o processo de tomar decises, atravs de relatrios de tendncias, de exceo e relatrios que revelam os objetivos versus desempenho real.
No so uma soluo adequada para dados no-estruturados; Podem ter custos elevados e podem ficar ultrapassados com alguma rapidez.
DATA WAREHOUSE E BUSINESS INTELLIGENCE Business intelligence (inteligncia empresarial em portugus), o processo de recolha e tratamento de informaes que apoiam a gesto de um negcio. Normalmente, business intelligence utilizam informao recolhida em um data warehouse. nem todos os data warehouses so usados no contexto de business intelligence, porque nem todos as aplicaes de business intelligence exigem um data warehouse.
Pgina 8
Pgina 9
Metadado
O conceito metadado considerado como sendo os "dados sobre dados", isto , os dados sobre os sistemas que operam com estes dados. Um repositrio de metadados uma ferramenta essencial para o gerenciamento de um Data Warehouse no momento de converter dados em informaes para o negcio.
Fluxo de dados Formato dos dados Nomes e alias Definies de negcio Regras de transformao Atualizao de dados Requisitos de teste Indicadores de qualidade de dados Triggers automticos Responsabilidade sobre informaes Acesso e segurana
Data Mining
Prospeco de dados ou minerao de dados tambm conhecida pelo termo ingls data mining) o processo de explorar grandes quantidades de dados procura de padres consistentes, como regras de associao ou sequncias temporais, para detectar relacionamentos sistemticos entre variveis, detectando assim novos subconjuntos de dados. A expresso data mining surgiu pela primeira vez em 1990 em comunidades de bases de dado. A minerao de dados a etapa de anlise do processo conhecido como KDD (Knowledge Discovery in Databases), sendo a sua traduo literal "Descoberta de Conhecimento em Bases de Dado. A minerao de dados uma prtica relativamente recente no mundo da computao, e utiliza tcnicas de recuperao de informao, inteligncia artificial, reconhecimento de padres e de estatstica para procurar correlaes entre diferentes dados que permitam adquirir um conhecimento benfico para uma empresa ou indivduo. Para uma empresa, o data mining pode ser uma importante ferramenta que potencia a inovao e lucratividade.
Pgina 11
O data mining pode ser divido em algumas etapas bsicas que so: explorao, construo de modelo, definio de padro e validao e verificao. A minerao de dados formada por um conjunto de ferramentas e tcnicas que atravs do uso de algoritmos de aprendizagem ou classificao baseados em redes neurais e estatstica, so capazes de explorar um conjunto de dados, extraindo ou ajudando a evidenciar padres nestes dados e auxiliando na descoberta de conhecimento. Esse conhecimento pode ser apresentado por essas ferramentas de diversas formas: agrupamentos, hipteses, regras, rvores de deciso, grafos, ou dendrogramas. Uma minerao de dados bem executada deve cumprir tarefas como: deteco de anomalias, aprendizagem da regra de associao (modelo de dependncia), clustering (agrupamento), classificao, regresso e sumarizao. O processo de data mining costuma ocorrer utilizando dados contidos dentro do data warehouse . A minerao de dados (MD) surge para essa finalidade e pode ser aplicada tanto para a pesquisa cientifica como para impulsionar a lucratividade da empresa madura, inovadora e competitiva. Nos ltimos anos, a minerao de dados tem sido amplamente utilizada nas reas da cincia e engenharia, tais como bioinformtica, gentica, medicina, educao e engenharia eltrica. Diariamente as empresas acumulam grande volume de dados em seus aplicativos operacionais. So dados brutos que dizem quem comprou o qu, onde, quando e em que quantidade. a informao vital para o dia-a-dia da empresa. Se fizermos estatstica ao final do dia para repor estoques e detectar tendncias de compra, estaremos praticando business intelligence (BI). Se analisarmos os dados com estatstica de modo mais refinado, procura de padres de vinculaes entre as variveis registradas, ento estaremos
Pgina 12
fazendo minerao de dados. Buscamos com a MD conhecer melhor os clientes, seus padres de consumo e motivaes. Atravs da MD, esses dados agora podem agregar valor s decises da empresa, sugerir tendncias, desvendar particularidades dela e de seu meio ambiente e permitir aes melhor informadas aos seus gestores. Pode-se ento diferenciar o business inteligence (BI) da minerao de dados (MD) como dois patamares distintos de atuao. O primeiro busca subsidiar a empresa com conhecimento novo e til acerca do seu meio ambiente e funciona no plano estratgico. O Segundo visa obter a partir dos dados operativos brutos, informao til para subsidiar a tomada de deciso nos escales mdios e altos da empresa e funciona no plano tctico. O conceito de data mining muitas vezes associado extrao de informao relativa ao comportamento de pessoas. Por esse motivo, em algumas situaes, a minerao de dados levanta aspectos legais e questes relativas privacidade e tica. Apesar disso, muitas pessoas afirmam que a minerao de dados eticamente neutra, pois no apresenta implicaes ticas.
Pgina 13
Localizando padres
Padres so unidades de informao que se repetem. A tarefa de localizar padres no privilgio da minerao de dados. O crebro dos seres humanos utiliza-se de processos similares, pois muito do conhecimento que temos em nossa mente , de certa forma, um processo que depende da localizao de padres.
Banco de dados
Bancos de dados, (ou bases de dados), so conjuntos de dados com uma estrutura regular que organizam informao. Um banco de dados normalmente agrupa informaes 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). Muitas vezes o termo banco de dados usado como sinnimo de SGDB. Exemplos de SGBDs so: Oracle, SQL Server, DB2, PostgreSQL, MySQL, o prprio Access ou Paradox, entre outros.
Pgina 14
Um sistema de banco de dados como conjunto de quatro componentes bsicos: dados, hardware, software e usurios. Date conceituou que sistema de bancos de dados pode ser considerado como uma sala de arquivos eletrnica. A Figura 1 ilustra os componentes de um sistema de banco de dados.
Os objetivos de um sistema de banco de dados so o de isolar o usurio dos detalhes internos do banco de dados (promover a abstrao de dados) e promover a independncia dos dados em relao s aplicaes, ou seja, tornar independente da aplicao, a estratgia de acesso e a forma de armazenamento. O modelo de dados mais adotado hoje em dia o modelo relacional, onde as estruturas tm a forma de tabelas, compostas por linhas e colunas.
Pgina 15
Resumindo, um banco de dados uma coleo de dados relacionados. Entende-se por dado, toda a informao que pode ser armazenada e que apresenta algum significado implcito dentro do contexto ao qual ele se aplica.
Abstrao de dados
O sistema de banco de dados deve garantir uma viso totalmente abstrata do banco de dados para o usurio, ou seja, para o usurio do banco de dados pouco importa qual unidade de armazenamento est sendo usada para guardar seus dados, contanto que os mesmos estejam disponveis no momento necessrio.
Pgina 16
Modelo conceitual
a descrio do BD de maneira independente ao SGBD, ou seja, define quais os dados que aparecero no BD, mas sem se importar com a implementao que se dar ao BD. Desta forma, h uma abstrao em nvel de SGBD. Uma das tcnicas mais utilizadas dentre os profissionais da rea a abordagem entidade-relacionamento (ER), onde o modelo representado graficamente atravs do diagrama entidade-relacionamento (DER) (Figura 3).
Pgina 17
O modelo acima, entre outras coisas, nos traz informaes sobre Alunos e Turmas. Para cada Aluno, ser armazenado seu nmero de matrcula, seu nome e endereo, enquanto para cada turma, teremos a informao de seu cdigo, a sala utilizada e o perodo.
Modelo Lgico
Descreve o BD no nvel do SGBD, ou seja, depende do tipo particular de SGBD que ser usado. No podemos confundir com o Software que ser usado. O tipo de SGBD que o modelo lgico trata se o mesmo relacional, orientado a objetos, hierrquico, etc. Abordaremos o SGBD relacional, por serem os mais difundidos. Nele, os dados so organizados em tabelas.
Aluno mat_aluno 1 2 3 Turma cod_turma 1 2 sala 8 5 periodo Manh Noite nome Ceclia Ortiz Rezende Ablio Jos Dias Renata Oliveira Franco endereco Rua dos Ips, 37 Avenida Presidente Jnio Rua Nove de Julho, 45
Pgina 18
O modelo lgico do BD relacional deve definir quais as tabelas e o nome das colunas que compem estas tabelas. Para o nosso exemplo, poderamos definir nosso modelo lgico conforme o seguinte: Aluno(mat_aluno, nome, endereco) Turma (cod_turma, sala, periodo) importante salientar que os detalhes internos de armazenamento, por exemplo, no so descritos no modelo lgico, pois estas informaes fazem parte do modelo fsico, que nada mais que a traduo do modelo lgico para a linguagem do software escolhido para implementar o sistema.
As 13 regras
H 13 regras para que um Sistema Gerenciador de Banco de Dados (SGBD) fosse considerado relacional:
1. Regra Fundamental:
o
Um SGBD relacional deve gerir os seus dados usando apenas suas capacidades relacionais
Pgina 19
2. Regra da informao:
o
Toda informao deve ser representada de uma nica forma, como dados em uma tabela.
Todo o dado (valor atmico) pode ser acedido logicamente (e unicamente) usando o nome da tabela, o valor da chave primria da linha e o nome da coluna.
Os valores nulos (diferente do zero, da string vazia, da string de caracteres em brancos e outros valores no nulos) existem para representar dados no existentes de forma sistemtica e independente do tipo de dado.
A descrio do banco de dados representada no nvel lgico como dados ordinrios (isto , em tabelas), permitindo que usurios autorizados apliquem as mesmas formas de manipular dados aplicada aos dados comuns ao consult-las.
Um sistema relacional pode suportar vrias linguagens e formas de uso, porm deve possuir ao menos uma linguagem com sintaxe bem definida e expressa por cadeia de caracteres e com habilidade de apoiar a definio de dados, a definio de vises, a manipulao de dados, as restries de integridade, a autorizao e a fronteira de transaes.
Toda viso que for teoricamente atualizvel ser tambm atualizvel pelo sistema.
As operaes de manipulao de dados devem poder ser aplicadas a vrias linhas de uma vez, ao invs de apenas uma por vez.
Programas de aplicao ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as modificaes na representao de armazenagem ou mtodos de acesso internos.
10.
o
Independncia lgica de dados Programas de aplicao ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as mudanas de informao que permitam teoricamente a no alterao das tabelas base.
11.
o
Independncia de integridade: As relaes de integridade especficas de um banco de dados relacional devem ser definidas em uma sub-linguagem de dados e armazenadas no catlogo (e no em programas).
12.
o
Independncia de distribuio: A linguagem de manipulao de dados deve possibilitar que as aplicaes permaneam inalteradas estejam os dados centralizados ou distribudos fisicamente.
13.
o
Regra da No-subverso: Se o sistema relacional possui uma linguagem de baixo nvel (um registro por vez), no deve ser possvel subverter ou ignorar as regras de integridade e restries definidas no alto nvel (muitos registros por vez).
Pgina 21
mesmo, nos Bancos de Dados Relacionais os usurios podem fazer perguntas relacionadas aos negcios atravs de vrios pontos. A linguagem padro dos Bancos de Dados Relacionais a Structured Query Language, ou simplesmente SQL, como mais conhecida.
O Modelo Relacional
Um Banco de Dados Relacional segue o Modelo Relacional. A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal. Na descrio informal estamos preocupados com aspectos prticos da utilizao e usamos os termos tabela, linha e coluna. Na descrio formal estamos preocupados com a semntica formal do modelo e usamos termos como relao (tabela), tupla(linhas) e atributo(coluna).
Colunas (atributos)
As colunas de uma tabela so tambm chamadas de atributos. Ex.: O campo Nome, ou endereo de uma tabela de um BD relacional.
Chave
As tabelas relacionam-se umas as outras atravs de chaves. Uma chave um conjunto de um ou mais atributos que determinam a unicidade de cada registro. Por exemplo, se um banco de dados tem como chaves Cdigo do Produto e ID Sistema, sempre que acontecer uma insero de dados o sistema de gerenciamento de banco de dados ir fazer uma consulta para identificar se o registro j no se encontra gravado na tabela. Neste caso, um novo registro no ser criado, resultando esta operao apenas da alterao do registro existente. A unicidade dos registros, determinada por sua chave, tambm fundamental para a criao dos ndices. Temos dois tipos de chaves: Chave primria: (PK - Primary Key) a chave que identifica cada registro dandolhe unicidade. A chave primria nunca se repetir.
Pgina 23
Chave Estrangeira: (FK - Foreign Key) a chave formada atravs de um relacionamento com a chave primria de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primria seja composta na origem, a chave estrangeira tambm o ser.
Pgina 24