Baixe o app para aproveitar ainda mais
Prévia do material em texto
Profa. MSc. Sandra Bozolan UNIDADE I Administração de Banco de Dados O desenvolvimento de um sistema de informação envolve a análise e o projeto de dois componentes: os dados e os processos. O projeto de dados é considerado a parte estática do sistema, uma vez que diz respeito a um universo persistente de características que dificilmente sofre modificações após a sua definição. Introdução a banco de dados O projeto de processos, por sua vez, é chamado de parte dinâmica, uma vez que as tarefas a serem realizadas sobre os dados podem variar conforme ocorre a evolução do sistema. Considera-se projeto de um banco de dados a análise, o projeto e a implementação dos dados persistentes de uma aplicação, levando em conta a determinação da sua semântica (abstração dos dados de uma realidade) e, posteriormente, o modelo de dados e o Sistema Gerenciador de Banco de Dados (SGBD) a serem adotados. Introdução a banco de dados Etapa em que são coletadas informações sobre os dados de interesse da aplicação, seu uso, ou seja, as operações de manipulação sobre elas e suas relações. Para a realização dessa etapa, são necessárias tarefas como entrevistas com os futuros usuários do sistema, análise de documentações disponíveis, arquivos, relatórios etc. O resultado normalmente é uma descrição dos requisitos da aplicação mais detalhada e clara possível. Caso nenhuma metodologia de engenharia de software esteja sendo empregada. Nível de abstração: modelo lógico. Análise de requisitos (modelo lógico) Categoria (@codCat: inteiro, nomeCat: literal[30]) Produto (@codCat: inteiro, descProd: literal [50], quantProd: real, precoProd:real, codcatProd; inteiro) Nessa etapa, é realizado o que chamamos de modelagem conceitual: são analisados os fatos de interesse, isto é, as entidades ou conjunto de ocorrências de dados e seus relacionamentos, juntamente com seus atributos e propriedades ou características, e construída uma notação gráfica para facilitar o entendimento dos dados e suas relações, tanto para os analistas quanto para os futuros usuários. Essa etapa resulta em um modelo conceitual, em que a semântica da realidade deve estar correta. A ferramenta mais usada nessa etapa é o Diagrama Entidade-Relacionamento (E-R). Projeto conceitual Nessa etapa, o desenvolvimento do banco de dados começa a se voltar para o ambiente de implementação, uma vez que é feita a conversão do modelo conceitual para um modelo de dados de um banco de dados (modelo lógico). Esse modelo de dados pode ser relacional, orientado a objetos ou dimensional, por exemplo. Essa etapa se baseia no uso de regras de mapeamento de um tipo de diagrama de acordo com o modelo de dados definido. Pode ser um diagrama E-R ou um diagrama de classes, entre outros. Projeto lógico Esta última etapa realiza a adequação do modelo lógico gerado na etapa anterior ao formato de representação de dados do Sistema Gerenciador de Banco de Dados escolhido para a implementação. Para a realização dessa etapa, deve-se conhecer os elementos e o funcionamento do SGBD, para a criação da estrutura lógica definida no modelo. O resultado é a especificação do esquema da aplicação e da implementação das restrições de integridade. Projeto físico O Modelo Relacional é o modelo de dados dominante no mercado ainda hoje e surgiu na década de 1970. Ele foi proposto por Edgar Frank Codd e se tornou um marco em como pensar em banco de dados. Codd desconectou a estrutura lógica do banco de dados do método de armazenamento físico, organizando os dados em um conjunto de relações. Modelo de Chen Fonte: https://www.lucidchart.com/page s/pt/o-que-e-diagrama-entidade- relacionamento A partir da década de 1980, com o advento da computação pessoal, novos modelos começaram a ser definidos, visando atender às necessidades de aplicações ditas não convencionais, ou seja, aplicações cujas entidades apresentam uma estrutura que não se adéqua bem com a organização relacional de dados. A Linguagem Estruturada de Consultas (SQL) se torna a linguagem padrão mundial para os Sistemas Gerenciadores de Banco de Dados. Nessa década, surge também o modelo cliente-servidor, que muda a forma como os sistemas seriam concebidos. A Linguagem estruturada de consultas A grande maioria dos bancos de dados conhecidos hoje comercialmente foi criada nessa época. Com a evolução, começaram a surgir conceitos que são utilizados até os dias de hoje, como: OLTP – Online Transaction Process (Processos de Transação em Tempo Real) OLAP – Online Analytical Process (Processos Analíticos em Tempo Real) Conceitos de tipos de banco de dados Open Source – software livre, que são os que mudariam o conceito de posse de um software. Os sistemas open source se baseiam em quatro leis, ou quatro liberdades, que são: Liberdade nº 0: a liberdade de executar o programa, para qualquer propósito. Liberdade nº 1: a liberdade de estudar como o programa funciona e adaptá-lo para suas necessidades. Acesso ao código-fonte é um pré-requisito para essa liberdade. Conceitos de tipos de banco de dados Liberdade nº 2: a liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo. Liberdade nº 3: a liberdade de aperfeiçoar o programa e liberar seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para essa liberdade. Conceitos de tipos de banco de dados Considerada uma das fases mais importantes no projeto de banco de dados. Nessa etapa, o desenvolvimento do banco de dados começa a se voltar para o ambiente de implementação, uma vez que é feita a conversão do modelo conceitual para um modelo de dados de um banco de dados. A qual modelo de dados estamos nos referindo? a) Projeto conceitual. b) Projeto estrutural. c) Projeto lógico. d) Projeto físico e) Projeto de rede. Interatividade Considerada uma das fases mais importantes no projeto de banco de dados. Nessa etapa, o desenvolvimento do banco de dados começa a se voltar para o ambiente de implementação, uma vez que é feita a conversão do modelo conceitual para um modelo de dados de um banco de dados. A qual modelo de dados estamos nos referindo? a) Projeto conceitual. b) Projeto estrutural. c) Projeto lógico. d) Projeto físico e) Projeto de rede. Resposta O modelo hierárquico foi definido com base na observação de que muitas entidades do mundo real são organizadas hierarquicamente. Nesse modelo, os dados são organizados em um conjunto de tipos de registros (entidades), interconectados por meio de ligações (relacionamentos). Modelo hierárquico Fonte: Livro-texto. Cecília Taubaté 526-7890 Lauro Mauá 257-6425 Elaine Guarujá 257-1376 800,004876-2100,682576-53584-7 576,805657-3 300,00 Similar ao modelo hierárquico, os dados no modelo de redes são organizados em tipos e ligações entre dois tipos de registros. Não existe restrição hierárquica, ou seja, quaisquer dois tipos de registros podem se relacionar. Assim, tanto o esquema quanto as ocorrências de dados são visualizados como um grafo direcionado. Um esquema no modelo de redes é chamado de diagrama de estrutura de dados. Modelo em rede Fonte: Livro-texto. Nome_Cli Cidade_Cli Tel_Cli Cliente Conta #_CC Saldo Um banco de dados é uma estante de coleção de dados que, tipicamente, descreve as atividades de uma ou mais organizações relacionadas. Por exemplo, um banco de dados de uma universidade poderia conter informações sobre: Entidades como: alunos, professores, cursos e turmas; Relacionamentos entre as entidades, como a matrícula dos alunos nos cursos, os cursos ministrados pelos professores e o uso de salas por cursos. Banco de dados Fonte: https://portal.educacao.go.gov.br/ Exemplo de entidades: Alunos e professores Elmasri (2011) dá uma definição: “[...] um banco de dados é uma coleção de dados relacionados. Dadossão traduzidos em fatos conhecidos que podem ser registrados e possuem significado implícito. Por exemplo, considere os nomes, números de telefone e endereços das pessoas que você conhece. Essa coleção de dados relacionados, com um significado implícito, é um banco de dados”. Banco de dados – SGBD Fonte: https://roxpartner.com/consultoria-de-banco-de-dados-rox-partner/ Existem diversas plataformas de banco de dados, e a escolha depende do orçamento e de políticas de investimento em TI nas organizações. Houve um tempo em que apenas as plataformas proprietárias ofereciam produtos de qualidade e segurança, e somente empresas com elevado capital tinham condições de adquirir esses produtos. Mas com o amadurecimento das plataformas open source, as pequenas empresas também podem desenvolver seu projeto de banco de dados de forma tão eficiente e segura quanto as empresas de grande porte. Dentre as empresas fornecedoras de plataformas proprietárias de banco de dados, destacamos as seguintes: Oracle – www.oracle.com Microsoft – www.microsoft.com Sybase (SAP) – www.sybase.com IBM – www.ibm.com Banco de dados de plataformas proprietárias Apesar de oferecerem plataformas pagas, elas costumam disponibilizar uma versão gratuita do banco de dados. Mas essas versões gratuitas não são recomendadas para projetos em sistemas de produção, porque possuem limitações se comparadas com a versão paga. No site dos fornecedores, há as recomendações e restrições para o uso dessas versões. Normalmente elas são usadas na fase inicial do projeto para ajudar na escolha da plataforma definitiva que será posteriormente adquirida. Funcionam como um test drive, em que podemos conhecer o produto sem custos: MySQL – www.mysql.com PostgreSQL – www.postgresql.org Cassandra – cassandra.apache.org SQLite – www.sqlite.org Banco de dados de plataformas open source Existem diferentes tipos de bancos de dados, os mais conhecidos são: relacionais; não relacionais; orientados a objeto. Tipo de banco de dados Bancos relacionais são os bancos derivados das primeiras pesquisas, realizadas em meados da década de 1970. São o tipo de banco mais utilizado no mundo. Os dados são separados em entidades, conforme cada assunto, e gravados como atributos dessas entidades. Permitem que essas entidades se relacionem entre si e proporcionam uma forma rápida e segura de armazenar e recuperar os dados. Os mais conhecidos são: SQL Server Microsoft – www.microsoft.com/sqlserver MySQL – www.mysql.com PostgreSQL – www.postgresql.org Informix – www-01.ibm.com/software/data/Informix DB2 – www-01.ibm.com/software/data/db2 Sybase – www.sybase.com Oracle – www.oracle.com Banco de dados relacionais Um banco de dados é dito não relacional quando não suporta instruções e operações de junção na linguagem SQL. São muito utilizados em sistemas para a internet, por causa da velocidade e da escalabilidade maior em relação aos bancos relacionais. As primeiras pesquisas surgiram em 1998, mas o termo NoSQL (not only sql) como conhecemos hoje surgiu em 2009. Os mais conhecidos são: Hadoop – hadoop.apache.org Cassandra – cassandra.apache.org Hypertable – hypertable.org Amazon Simple DB – aws.amazon.com/pt/simpledb CloudData – www.cloudata.org Banco de dados não relacionais Dizemos que um banco de dados é orientado a objetos quando cada informação é armazenada na forma de objetos, ou seja, utiliza a estrutura de dados chamada de orientação a objetos. Os mais conhecidos são: db4objects – www.db4o.com GemStone – www.gemstone.com Caché – www.intersystems.com.br Zope – zope.org Banco de dados orientados a objetos Um sistema de gerenciamento de banco de dados (SGBD) é uma aplicação informalizada que fornece a interface entre os dados que serão armazenados fisicamente no banco de dados e os usuários (pessoa ou aplicação) desses dados. Assim, o usuário deixa de saber o formato dos dados e como e onde eles serão armazenados, pesquisados, ordenados etc. É o sistema de gerenciamento de banco de dados que tem a responsabilidade de executar cada uma das tarefas. Sistema de gerenciamento de banco de dados Fonte: D365 Database Sync Solution | Connecting Software Um banco de dados é dito não relacional quando não suporta instruções e operações de junção na linguagem SQL. São muito utilizados em sistemas para a internet, por causa da velocidade e da escalabilidade maior em relação aos bancos relacionais. Assinale abaixo qual dos bancos de dados não é conhecido com um banco de dados não relacional: a) Hadoop – hadoop.apache.org. b) Hypertable – hypertable.org. c) Amazon Simple DB – aws.amazon.com/pt/simpledb. d) CloudData – www.cloudata.org. e) Sybase – www.sybase.com. Interatividade Um banco de dados é dito não relacional quando não suporta instruções e operações de junção na linguagem SQL. São muito utilizados em sistemas para a internet, por causa da velocidade e da escalabilidade maior em relação aos bancos relacionais. Assinale abaixo qual dos bancos de dados não é conhecido com um banco de dados não relacional: a) Hadoop – hadoop.apache.org. b) Hypertable – hypertable.org. c) Amazon Simple DB – aws.amazon.com/pt/simpledb. d) CloudData – www.cloudata.org. e) Sybase – www.sybase.com. Resposta Com base na definição, as seguintes funções básicas são encontradas: Método de acesso: duas categorias de linguagem conhecidas como: DDL (Data Definition Language) e; DML (Data Manipulation Language) devem ser suportadas. A DDL permite a especificação do esquema da organização, ou seja, entidades com seus atributos e tipos de dados associados, os relacionamentos entre essas entidades e os índices de acesso associados aos atributos. Por esquema, entende-se uma organização lógica dos dados de uma realidade, adequados ao modelo de dados do SGBD. Funções básicas de um SGBD A DML permite as operações de manipulação de dados, executadas pelas aplicações inclusão, alteração, exclusão e consulta. As consultas devem ser executadas de maneira eficaz, procurando minimizar o número de acessos ao meio de armazenamento secundário, assim como o volume de dados gerados nos resultados intermediários do processamento da consulta. Para tanto, a antecipação da aplicação de filtros e a busca apenas de dados relevantes para os relacionamentos, em uma certa etapa do processamento, são exemplos de estratégias que são consideradas. Funções básicas de um SGBD Integridade está associada à ideia de dados corretos, consistentes no banco de dados. As restrições de integridade se preocupam em manter dados sempre coerentes, verdadeiros com a realidade em questão. Para tanto, o SGBD deve disponibilizar uma linguagem para especificação de restrições de integridade, chamada de DCL (Data Constraint Language), e por meio dessa linguagem é possível programar testes e ações. Restrições de Integridade (RI) Esse controle evita a violação dos dados por agentes e/ou situações não previstas, ou seja, as falhas. Políticas de autorização de acesso devem permitir que apenas agentes autorizados, sejam usuários ou aplicações, realizem certas operações sobre certos dados. Para tanto, faz-se necessário manter uma matriz de autorização, que especifica, para cada agente e cada dado, as operações autorizadas. Por dado, entende-se alguma porção do banco de dados, como um ou mais registros, um arquivo completo ou vários, alguns campos de um registro etc. O mecanismo de visões permite especificar a porção do banco de dados a que um agente tem direito. Segurança A recuperação de falhas deve possibilitar o retorno do banco de dados a um estado consistente de seus dados após a ocorrência de uma falha. Para tanto, o SGBD deve manter arquivos históricos (log), que cadastram todas as alterações realizadas no banco de dados portransações. Entende-se por transação um conjunto de operações de manipulação de dados a que é submetido o banco de dados, sendo que todas essas operações devem ser efetivadas ou, na ocorrência de uma falha, nada deve ser efetivado, para preservar a consistência dos dados. Segurança Os arquivos históricos (log) devem registrar, entre outras coisas, a identificação das transações, os arquivos manipulados, os registros atualizados, a operação feita e os valores atual e antigo. No caso de falhas de transação ou de sistema, o arquivo histórico (log) deve ser consultado e as ações realizadas por transações inacabadas devem ser desfeitas. Caso todas as modificações da transação estejam registradas, é possível refazê-la. Já para falhas de meio de armazenamento, que tornam inoperantes as unidades de disco onde se encontra o banco de dados, deve-se restaurar o banco de dados a partir do último backup realizado e consultar o log para refazer ou desfazer as transações cadastradas após esse backup. Segurança Esse controle evita conflitos de acesso simultâneo a um dado por mais de uma transação. Se esse controle não existisse, os dados consultados por uma transação poderiam se tornar inválidos caso fossem atualizados por outra transação. Esse controle geralmente é feito pelo uso de estratégias de bloqueio (lock), que garantem que apenas uma transação manipule um dado, durante o espaço de tempo que necessitar, sem que ocorra interferência de outras transações. Controle de concorrência Essa funcionalidade do SGBD é uma decorrência direta das vantagens trazidas pelo uso de um banco de dados. Independência de dados significa transparência de gerenciamento e armazenamento, assim como do esquema global da organização para as aplicações. O primeiro caso é chamado de independência física, ou seja, a aplicação não se preocupa com detalhes de localização física dos dados ou controles de integridade e segurança. A independência lógica garante, pelo mecanismo de visões, que uma aplicação tenha condições de especificar a porção do banco de dados a que deseja ter acesso, não precisando ter conhecimento do esquema global. Independência dos dados Um SGBD geralmente interage com diversas aplicações de uma organização, assim como com os meios de armazenamento de dados. No primeiro caso, a aplicação se vale de comandos DML embutidos no seu código. No segundo caso, geralmente existe uma interface com o sistema operacional do equipamento para leitura e gravação de dados. Assim, um SGBD lida com diversos níveis de visão de um mesmo dado, de maneira a abstrair detalhes da organização dos dados. Arquitetura básica de um SGBD Nível mesmo abstrato, em que se sabem detalhes físicos da organização de um dado, ou seja, o esquema físico. É uma estruturação de baixo nível, em que é descrito como os dados estão armazenados em termos de bytes. O módulo de gerenciamento de arquivos lida com esse nível de visão dos dados, uma vez que localiza, lê e grava registros. Nível físico Nível intermediário, que suporta uma descrição de mais alto nível em relação ao nível físico, em que a preocupação está em descrever quais dados são significativos para uma organização, isto é, têm semântica, são relevantes para o dia a dia da organização. Nesse caso, trabalha-se com os dados em nível de entidades e relacionamentos, tais quais estão definidos no esquema. É similar, por analogia, à descrição de um registro em uma linguagem de programação, ou seja, trabalha-se com nomes de arquivos e campos, e não com sequências de bytes. Os usuários que lidam nesse nível devem ter conhecimento completo de todo o esquema da organização, como o administrador do banco de dados ou o usuário especializado. Nível conceitual Nível mais alto de abstração, sendo particular de cada aplicação que manipula dados do banco de dados. Nesse caso, cada aplicação pode determinar o universo de dados a que deseja ter acesso. Esse universo de dados pode ser uma porção do esquema global da organização. Assim sendo, cada aplicação abstrai detalhes irrelevantes, desnecessários para seu processamento. Os usuários desse nível são os programas de aplicação. Nível de visão Os dados são armazenados em áreas chamadas páginas. O tamanho dessas páginas pode variar de banco para banco. Nelas, são armazenados os dados e os metadados (são os dados dos dados). Olhe para o dados em categorias, onde cada dados possui uma forma diferente. Conforme a imagem: Como os dados são armazenados Fonte: Livro Use A Cabeça! Qual nível de arquitetura de banco de dados é considerado uma descrição de um registro em uma linguagem de programação, ou seja, trabalha-se com nomes de arquivos e campos, e não com sequências de bytes? Os usuários que lidam nesse nível devem ter conhecimento completo de todo o esquema da organização, como o administrador do banco de dados ou o usuário especializado. a) Nível conceitual. b) Nível estrutural. c) Nível lógico. d) Nível físico e) Nível de rede. Interatividade Qual nível de arquitetura de banco de dados é considerado uma descrição de um registro em uma linguagem de programação, ou seja, trabalha-se com nomes de arquivos e campos, e não com sequências de bytes? Os usuários que lidam nesse nível devem ter conhecimento completo de todo o esquema da organização, como o administrador do banco de dados ou o usuário especializado. a) Nível conceitual. b) Nível estrutural. c) Nível lógico. d) Nível físico e) Nível de rede. Resposta No SQL Server, cada coluna, variável local, expressão e parâmetro têm um tipo de dados relacionados. Os tipos de dados são atributos que especificam o tipo de dados que o objeto pode manter: dados inteiros, dados de caracteres, dados monetários, data e hora, cadeias de caracteres binárias etc. A seleção de tipos de dados costuma ser determinada pela natureza dos dados e pela utilização pretendida Por exemplo: Number(L,D), Integer, Smallint, Decimal(L,D) Char(L), Varchar(L), Varchar2(L) Date, Time, Timestamp Entre outros Tipos de dados A maioria dos programadores utiliza uma linha por definição de coluna (atributo). São utilizados espaços para alinhar as características e as restrições dos atributos. Tanto os nomes de tabelas como de atributos aparecem totalmente em letras maiúsculas. Especificações NOT NULL. Especificação UNIQUE. Tipos de dados Restrição NOT NULL Garante que uma coluna não aceite nulos. Restrição UNIQUE Garante que todos os valores de uma coluna sejam exclusivos Restrição DEFAULT Atribui um valor a um atributo quando uma nova linha é adicionada à tabela Restrição CHECK Valida dados quando é inserido um valor de atributo Restrições É o catálogo responsável pela manutenção dos metadados que dizem respeito à estrutura do esquema, à integridade, às configurações do SGBD para efeitos de controle, segurança e desempenho (performance), às estimativas de acesso e estimativas sobre os dados. É constantemente consultado durante a realização de várias das suas tarefas, como processamento de consultas, pré-compilação de comandos DML, verificação de integridade em operações de atualização etc. O administrador do banco de dados tem acesso às suas informações por meio de ferramentas especiais. Dicionário de Dados (DD) Um SGBD deve se comunicar com vários agentes (usuários ou programas), com o objetivo de atender às necessidades de dados de diversas aplicações, permitir o desenvolvimento de aplicações que utilizam um banco de dados, assim como possibilitar que aspectos de performance possam ser otimizados, conforme a demanda de acesso a dados pelas aplicações. Agentes de interação com o SGBD Os sistemas gerenciadores de banco de dados são projetados com muitos recursos visuais e aplicações internas que servem como verdadeiros assistentes. Ainda assim, eles nãose autoadministram, ou seja, não eliminam a necessidade dos profissionais especializados, apenas agilizam tarefas trabalhosas, como escrever scripts. Agentes de interação com o SGBD Especialista no SGBD adotado pela organização, o DBA (Administrador de Banco de Dados) é o profissional que controla diversos aspectos funcionais, como definição e modificação do esquema, das autorizações de acesso e das regras de integridade. Além disso, tem o controle dos procedimentos de segurança, execução de backups e recuperação de falhas de meio de armazenamento, assim como monitoração de performance de acesso de dados e tomada de decisões para melhorias no SGBD. DBA – Data Base Administrator É o profissional responsável pelos dados armazenados, especializado em Projeto de Banco de Dados. É de sua responsabilidade o desenvolvimento de relatórios gerenciais e a distribuição da informação dentro da empresa em todos os níveis. Interage com os usuários da aplicação a ser desenvolvida, com o objetivo de definir os requisitos de dados e especificar o esquema do banco de dados. Deve ser um especialista em desenvolvimento de sistemas. Administrador de dados É o profissional responsável pelo desenvolvimento de programas de aplicação dentro do banco de dados. Esses programas interagem com o SGBD por meio de comandos de manipulação de dados (DML) embutidos no seu código. São desenvolvidos usando a linguagem padrão do banco de dados, como Oracle PL-SQL, Microsoft T-SQL, Transact SQL da Sybase, entre outros, e podem ser rotinas que são executadas sob outras aplicações ou mesmo em conjunto com elas. Desenvolvedor de banco de dados É o profissional que desenvolve aplicações utilizando ferramentas compatíveis com o SGBD. Essas ferramentas podem ser compiladores de linguagens de programação tradicionais que permitem a integração de comandos da linguagem da DML no seu código, programas que usam alguma linguagem de programação (C#, PHP, VB.NET, DELPHI, JAVA etc.), programação de sistemas e aplicativos de manipulação de dados, geradores de interfaces gráficas, geradores de relatórios etc. Programador Dentro do mercado de tecnologia como um todo, além do tempo de atuação na área e a experiência, outra forma de se comprovar o domínio de um profissional sobre uma determinada tecnologia é por meio de certificações. Essas certificações são criadas e mantidas pelos fornecedores das soluções de tecnologia por meio de provas aplicadas e gerenciadas por parceiros globais. A seguir, veremos as certificações mais importantes dentro da área de banco de dados. Certificações -server&resource_type=certification Certificações Microsoft Fonte: https://docs.microsoft.com/pt-br/learn/certifications/browse/?roles=developer&products=sql- server&resource_type=certification Os tipos de dados definem como um atributo pode ser utilizado no SGBD SQL Server e são elementos fundamentais. As definições se referem a quais tipos de dados respectivamente? I. Trata-se de um datatype que aceita como valor qualquer dígito, sendo que o espaço ocupado no disco é de um dígito por caractere. II. É um tipo de dado inteiro (conhecido também como booleano), cujo valor pode corresponder a NULL, 0 ou 1. III. Considerado um sinônimo do datatype decimal. IV. Permite o uso de valores entre 1/1/1753 e 31/12/9999 V. Datatype usado somente quando trabalhamos com variáveis de memória. a) CHAR, BIT, NUMERICO, DATETIME, TABLE. b) VARCHAR, REAL, BOOLEAN, DATE, IMAGE. c) VARCHAR, BOOLEAN, REAL, DATE, TABLE. d) VARCHAR, BOOLEAN, REAL, DATETIME TABLE. e) STRING, BOOLEAN, REAL, DATE, TABLE. Interatividade Os tipos de dados definem como um atributo pode ser utilizado no SGBD SQL Server e são elementos fundamentais. As definições se referem a quais tipos de dados respectivamente? I. Trata-se de um datatype que aceita como valor qualquer dígito, sendo que o espaço ocupado no disco é de um dígito por caractere. II. É um tipo de dado inteiro (conhecido também como booleano), cujo valor pode corresponder a NULL, 0 ou 1. III. Considerado um sinônimo do datatype decimal. IV. Permite o uso de valores entre 1/1/1753 e 31/12/9999 V. Datatype usado somente quando trabalhamos com variáveis de memória. a) CHAR, BIT, NUMERICO, DATETIME, TABLE. b) VARCHAR, REAL, BOOLEAN, DATE, IMAGE. c) VARCHAR, BOOLEAN, REAL, DATE, TABLE. d) VARCHAR, BOOLEAN, REAL, DATETIME TABLE. e) STRING, BOOLEAN, REAL, DATE, TABLE. Resposta ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados: fundamentos e aplicações. 4. ed. São Paulo: Pearson, 2011. RAMAKRISHNAN, R., GEHRKE, J. Sistemas de Gerenciamento de Banco de Dados. Porto Alegre: Bookman, 2011. Referências ATÉ A PRÓXIMA! Profa. MSc. Sandra Bozolan UNIDADE II Administração de Banco de Dados O modelo entidade-relacionamento possui uma técnica de diagramação e de um conjunto de conceitos que devem ser bem entendidos e não devem ser desrespeitados quanto à simbologia. Nessa técnica de diagramação a simplicidade é um dos preceitos e serve como meio de representação dos próprios conceitos por ela manipulados. Utiliza-se um retângulo para representar as entidades, um losango para representar os relacionamentos e pequenos balões para indicar os atributos que cada entidade possui. Modelo entidade relacionamento (MER) Entidade1 Entidade2 relacionamento Atr1 Atr2 Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Envolve diversas escolhas, incluindo as seguintes: Uma entidade ou um atributo deve possuir um conceito para que possa ser modelado? Uma entidade ou um relacionamento deve possuir um conceito para que possa ser modelado? Quais são os conjuntos de relacionamentos e seus conjuntos de entidades participantes? Devemos usar relacionamentos binários ou ternários? Devemos usar agregação? Discutiremos agora os aspectos envolvidos ao fazer essas escolhas. O desenvolvimento de um diagrama ER Representam uma associação entre duas entidades, representada por um losango nomeado com linhas para as duas entidades envolvidas. Um relacionamento indica uma função cumprida pelas duas entidades envolvidas. Sugere-se que esse nome seja um substantivo no plural, uma vez que o uso de verbos limita mais a criatividade para a determinação de nomes. Relacionamentos binários Relacionamento deve definir também a cardinalidade dessa associação, por meio de dois pares de valores, no qual o valor da esquerda indica o número mínimo esperado de ocorrências de uma entidade que se relaciona com a entidade questionada, e o valor da direita o número máximo. Relacionamentos binários É um tipo de associação que envolve ocorrências de uma mesma entidade (parte e chega da mesma entidade). Nesse caso, recomenda-se a indicação explícita do papel assumido por cada lado da associação, para tornar mais clara a interpretação do relacionamento. Por exemplo, em uma relação de chefia entre um empregado e outro, é interessante a indicação dos papéis de superior e subordinado. Alguns controles de integridade, não expressos no diagrama E-R, podem ser necessários, como a proibição de um empregado ser chefiado por ele mesmo (valores iguais no relacionamento) ou uma hierarquia de gerência com ciclos. É interessante que esses controles, se desejados, sejam explicitamente comentados como um anexo ao diagrama E-R. Relacionamentos reflexivos Relacionam três ocorrências de entidades. Só é interessante utilizar esse tipo de relacionamento quando realmente é obrigatório associar, ao mesmo tempo, um par de entidades com uma terceira. Por exemplo, um empregado que trabalha num projeto necessariamente realiza alguma tarefa nesse trabalho. A determinação da cardinalidade de um relacionamento ternário é feita questionando um par em relação à terceira entidade envolvida. Por exemplo, no caso de um empregado trabalhando em um projeto, temos o par empregado-projeto querealiza de 1 a N tarefas. Logo, a cardinalidade (1,N) é colocada ao lado da entidade TAREFAS. Relacionamentos ternários Representam uma propriedade de uma entidade ou de um relacionamento, como salário de um empregado ou o tempo que um empregado estará alocado em um projeto. São representados por círculos nomeados, ligados por linhas a uma entidade ou relacionamento. Atributos identificadores de entidades, ou que sejam necessários na identificação de relacionamentos, são indicados por um círculo preenchido ou pelo nome sublinhado Atributos do DER Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Funcionário Figura: Entidade Funcionário Entidade: é um objeto ou evento (real ou abstrato) que se torna um ponto de interesse dentro de uma determinada realidade, e ao qual podem ser associados dados, relacionamentos etc. O retângulo representa o tipo Entidade. Exemplo: Cliente, Fornecedor, Produto, Aluno etc. Elementos de um modelo de dados Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Figura: Objeto Funcionário Atributos: São propriedades (características) que identificam as entidades. Uma entidade é representada por um conjunto de atributos. Os atributos podem ser simples, compostos ou multivalorados. Um atributo no DER é representado por uma elipse ligada ao Tipo Entidade. Elementos de um modelo de dados Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Funcionário Figura: Entidade Funcionário Atributo opcional – Atributos com propriedades que podem assumir NULL. São indicados por um traço que corta a linha que liga o atributo à entidade ou relacionamento. Tipos de atributos Fonte: Próprio autor. Atributo composto – Representa uma abstração de outros atributos, como um endereço que abstrai (agrega) outros dados como rua, CEP, cidade etc. É representado por uma elipse, com ligações (linhas) para os atributos componentes (convencionais). Tipos de atributos Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Funcionário Figura: Entidade Funcionário – multivalorado (telefone) Atributo multivalorado – Atributos com propriedades que podem assumir mais de um valor, como os números de telefone de um departamento. São representados por uma cardinalidade mínima e máxima que é colocada ao lado do nome do atributo, indicando as quantidades de valores mínimos e máximos permitidos. Exemplo: Telefone. Uma pessoa poderá ter mais de um número de telefone. Tipos de atributos Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Funcionário Figura: Entidade Funcionário – multivalorado (telefone) Entidades cujas existências dependem da existência de outra entidade, dita fork. É representada por um retângulo duplo, podendo, opcionalmente, ser indicada uma seta que parte dela e chega à sua entidade forte, para tornar mais clara a dependência. A cardinalidade de uma ocorrência de uma entidade fraca com a forte é sempre (1,1), indicando que ela sempre depende de uma ocorrência da entidade forte. Entidades fracas O conceito de Generalização/Especialização é amplamente utilizado na programação orientada a objeto, e remete ao recurso POO de herança. Generalização/Especialização Fonte: Ramakrishnan e Gehrke (2011). C BA A generalização/especialização mostrada nesta figura expressa que a entidade CLIENTE é dividida em dois subconjuntos, as entidades PESSOA FÍSICA e PESSOA JURÍDICA, cada uma com propriedades próprias. Generalização/Especialização Fonte: Ramakrishnan e Gehrke (2011). Salienta que algumas ocorrências de uma entidade assumem papéis específicos, ou seja, são especializações, como o fato de um empregado ser um motorista ou secretário, inclusive com a possibilidade de terem atributos específicos. São classificadas em dois tipos, descritos a seguir: Especialização com ou sem exclusão mútua Indica se uma ocorrência de uma entidade genérica pode assumir apenas uma ou várias especializações, respectivamente. Especialização com ou sem obrigatoriedade Indica se uma especialização é obrigatória ou não. Especialização Uma agregação é representada por um polígono fechado que envolve as entidades e o relacionamento entre elas, determinando a entidade agregada. Essa entidade agregada é considerada, então, uma entidade normal do diagrama E-R, que pode se relacionar com outras entidades. Agregação A definição: é um objeto ou evento (real ou abstrato) que se torna um ponto de interesse dentro de uma determinada realidade, e ao qual podem ser associados dados, relacionamentos etc. Refere-se a: a) Objeto. b) Entidade. c) Relacionamento. d) Atributos. e) Chave primária. Interatividade A definição: é um objeto ou evento (real ou abstrato) que se torna um ponto de interesse dentro de uma determinada realidade, e ao qual podem ser associados dados, relacionamentos etc. Refere-se a: a) Objeto. b) Entidade. c) Relacionamento. d) Atributos. e) Chave primária. Resposta É um modelo abstrato desenvolvido pelo professor Peter Chen, a fim de representar as estruturas de dados de forma mais natural e mais próxima do mundo real dos negócios. Seus aspectos estruturais formalizam matematicamente a maneira como os dados estão organizados no modelo relacional (a seguir, serão descritos os conceitos básicos de um modelo relacional). Modelo Entidade Relacionamento (MER) Fonte: Livro-texto. Pessoa TEL Possui Retângulos representam as entidades Losangos representam as relações entre as entidades Elipses representam os atributos de uma entidade O domínio define o universo de valores permitidos para certo item de dado. Por exemplo, o domínio para o item de dado salário pode ser o conjunto dos números reais; o domínio do item de dado idade pode ser o conjunto dos números inteiros no intervalo [0,150]; o domínio do item sexo pode ser o conjunto limitado (masculino, feminino). Domínio compreende um tipo de dado predefinido mais um conjunto de restrições de integridade que limitam os valores permitidos para esse tipo de dado. Domínio Um atributo é um nome dado a um domínio utilizado para representar um item de dado. Matematicamente falando, um atributo é o nome de um conjunto. Em uma tabela, representa uma coluna. Um atributo pode apresentar um valor condizente com o domínio associado a ele ou NULL, que indica a ausência de valor ou valor desconhecido. Um atributo pode conter apenas um valor atômico, ou seja, um valor indivisível. Atributo do MER É um conjunto de pares (atributo – valor) que define uma linha da tabela, ou seja, uma ocorrência de uma entidade ou relacionamento. Se imaginarmos uma tabela como um conjunto, uma tupla seria um elemento desse conjunto. Tupla Pode ser definida como um subconjunto do produto cartesiano dos domínios (d1, d2, d3,..., dn) que correspondem aos atributos (a1, a2, a3,..., an) de uma tabela. O produto cartesiano gera (d1 x d2 x d3 x...x dn) tuplas e a relação mantém apenas aquelas tuplas que contêm valores de atributos relacionados que estão presentes na realidade. Uma relação, portanto, é um subconjunto. É vista como uma tabela no modelo relacional, composta de um cabeçalho e um corpo. O cabeçalho é formado por um conjunto fixo de atributos que possuem nomes distintos, para evitar ambiguidade na localização de um item de dado. O grau de uma relação significa seu número de atributos. Relação O conceito de chave é fundamental no modelo para garantir a identificação de tuplas e estabelecer relacionamentos entre relações. Chave primária (PK) – primary key: atributo ou grupo de atributos que permite a identificação única de uma tupla em uma relação, ou seja, o valor da PK (primary key) de uma tupla nunca se repetirá nas demais tuplas da mesma relação. Uma PK é escolhida entre várias chaves candidatas, que podem estar presentes na relação. As chaves candidatas não selecionadas são ditas chaves alternativas. A cada chavealternativa deve ser associada uma Relação de Integridade (RI) que garanta que seus valores sejam únicos. Chave Quando a chave primária tem um atributo, dizemos que é uma chave primária simples, e quando ela tem dois ou mais atributos, dizemos que é uma chave primária composta. Utilizamos uma chave primária simples para armazenar o ESTADO (UF) porque eles são únicos. Chave Fonte: Livro-texto. Utilizamos uma chave composta para CIDADE porque pode-se ter mais de uma cidade com o mesmo nome, por isso temos que associar o nome da cidade com o estado ao qual ela pertence, para poder garantir a unicidade da tupla. Chave Fonte: Livro-texto. Chave estrangeira (FK) – foreign key: Atributo ou grupo de atributos de uma relação R1 que estabelece um relacionamento de equivalência, por valor, com uma PK (primary key) de uma relação R2. O domínio da FK (foreign key) de R1 deve ser compatível com o domínio da PK (primary key) de R2. Nada impede que R1 e R2 sejam a mesma relação. Chave Chave artificial ou delegada (SK) – surrogate key Serve para substituir a chave original da tabela. Normalmente composta de números sequenciais, é muito utilizada em Modelos Multidimensionais, em que o processo de dimensionamento associa a chave natural do modelo relacional, que vão ser apenas atributos da dimensão, e para garantir a unicidade é criada a chave delegada (surrogate key). Chave Os aspectos de integridade do modelo relacional estão associados aos conceitos de chave primária e chave estrangeira. Garantir a integridade de um esquema relacional significa assegurar o acesso individualizado a todas as tuplas de uma relação, assim como a relacionamentos válidos e condizentes com a realidade. O modelo relacional é regido por duas regras de integridade básicas: a de integridade de entidade e a de entidade referencial, descritas a seguir. Restrições de integridades básicas Diz respeito à chave primária de uma relação. Ela diz que nenhum atributo que faz parte da chave primária pode ter NULL em alguma tupla. A manutenção dessa regra garante que toda tupla possa ser identificada unicamente. Regra integridade de entidade Diz respeito às chaves estrangeiras de uma relação. Ela diz que o valor de um atributo que faz parte de uma chave estrangeira pode assumir NULL desde que não faça parte da chave primária. Ainda, esse mesmo atributo pode assumir um valor qualquer, condizente com o seu domínio, desde que esse mesmo valor exista na chave primária de uma tupla da relação referida por ele. Com isso, nunca existirão relacionamentos incorretos entre dados. Para que essas regras sejam sempre respeitadas, o SGBD deve implementar rotinas de verificações automáticas. Isso implica testes e ações a serem realizados pelo SGBD toda vez que uma operação de atualização ocorrer. Regra de integridade relacional No caso da regra de integridade de entidade, o seguinte algoritmo deve ser executado toda vez que for incluída uma nova tupla em uma relação ou for alterado um valor de um atributo de uma tupla que faz parte da chave primária de uma relação: SE a chave primária da tupla for NULL. OU existir tupla com o mesmo valor da chave primária ENTÃO impedir a efetivação da operação SENÃO efetivar a operação Já para o caso da regra de integridade referencial, três alternativas de ações são geralmente tomadas pelo SGBD quando se percebe que uma violação irá ocorrer. Regra de integridade relacional Já para o caso da regra de integridade referencial, três alternativas de ações são geralmente tomadas pelo SGBD quando se percebe que uma violação irá ocorrer: Impedimento, a operação não é efetivada. Cascata, para o caso de exclusões de tuplas ou alterações de chave primária na relação referida, realizar a mesma operação em todas as tuplas que se referem a ela. Anulação, para o caso de exclusões de tuplas ou alterações de chave primária na relação referida, altera-se para NULL o(s) atributo(s) que compõe(m) a chave estrangeira que estabelece o relacionamento com essa relação. Uma variante dessa alternativa é anular apenas a chave estrangeira de uma única tupla. Regra de integridade relacional Quais são as três alternativas de ações que são geralmente tomadas pelo SGBD quando se percebe que uma violação irá ocorre? a) Impedimento, Cascata, Anulação. b) Se, Então, Senão. c) Impedimento, Cascata, Refinamento. d) Impedimento, Refinamento, Anulação. e) Refinamento, Cascata, Anulação. Interatividade Quais são as três alternativas de ações que são geralmente tomadas pelo SGBD quando se percebe que uma violação irá ocorre? a) Impedimento, Cascata, Anulação. b) Se, Então, Senão. c) Impedimento, Cascata, Refinamento. d) Impedimento, Refinamento, Anulação. e) Refinamento, Cascata, Anulação. Resposta Se uma operação de atualização é submetida à relação referida (possui a chave primária), o seguinte algoritmo deve ser executado toda vez que for excluída uma tupla ou for alterado o valor de um atributo que faz parte da chave primária: SE a chave estrangeira fizer parte da chave primária ENTÃO aplicar impedimento OU aplicar cascata SENÃO aplicar impedimento OU aplicar cascata OU aplicar anulação Regra de integridade relacional Entidades, do original entity type, servem para representar objetos, coisas, pessoas que existem na realidade. No MER, os relacionamentos são identificados com um verbo: Regra de integridade relacional Fonte: Livro-texto. Pessoa Possui Automóvel Uma pessoa possui um automóvel. Um automóvel pertencente a uma pessoa. 1 1 11 Dentro de um modelo relacional, temos que ver como as entidades se relacionam entre si, ou seja, ver como a entidade Pessoa se relaciona com a entidade Automóvel e como a entidade Automóvel se relaciona com a entidade Pessoa, e podemos concluir que: Regra de integridade relacional Fonte: Livro-texto. Pessoa Possui Automóvel 1 1 1 N Uma pessoa possui vários automóveis. vários automóveis pertencem a uma pessoa. Aqui fazemos os mesmos passos para a obtenção da cardinalidade, verificamos o relacionamento de Pessoa com Automóvel e de Automóvel com Pessoa. 1 Pessoa possui N (vários) automóveis. 1 Automóvel que pertence a 1 Pessoa: Regra de integridade relacional Fonte: Livro-texto. Pessoa Possui Automóvel 1 1 1 N Uma pessoa possui vários automóveis. vários automóveis pertencem a uma pessoa. Na Figura abaixo, temos a seguinte definição: 1 aluno possui N (vários) professores e 1 professor possui N (vários) alunos. Para obter a cardinalidade final, devemos usar a multiplicação. Em cada um dos lados, pegamos os dois números, que estão em destaque ao lado da entidade. Nesse caso, em aluno temos 1 e N, 1 x N = N (qualquer número multiplicado por 1 é ele mesmo). Já em professor, temos N e 1. N x 1 = N. Assim, obtemos um relacionamento de N para N: Regra de integridade relacional Fonte: Livro-texto. Aluno Possui Professor Um professor possui vários alunos. Um aluno possui vários professores. 1 N N 1 Quando fazemos o relacionamento entre duas ou mais tabelas, esse relacionamento pode ser classificado de duas formas: Identificado: também conhecido como relacionamento forte. Identifica que a chave estrangeira da tabela “pai” faz parte da chave da tabela “filha”. Não identificado: também conhecido como relacionamento fraco. Identifica que a chave estrangeira da tabela “pai” não faz parte da chave primária da tabela filha, sendo esse apenas mais um atributo. Tipos de relacionamento A seguir, mostramos a representação desses tipos de relacionamento, com exemplos, nas figuras abaixo: Tipos de relacionamento Fonte: Livro-texto. Figura 15 – Exemplo de relacionamento forte Figura 16 – Exemplo de relacionamento fraco A cardinalidade expressa o número mínimo e máximo de ocorrências de cada uma das entidades que participam do mesmo relacionamentode uma dada entidade. No DER, a cardinalidade é indicada colocando-se os respectivos números dos lados das entidades, utilizando o formato (x, y). O primeiro valor representa o número mínimo de entidades associadas, enquanto o segundo, o número máximo. Cardinalidade do Relacionamento Ferramentas de modelagem de ER baseado na notação pé de galinha não apresentam a faixa de cardinalidade numérica no diagrama. Em vez disso, o usuário pode adicioná-la como texto. Na notação pé de galinha, a cardinalidade é denotada pela utilização dos símbolos. A faixa de cardinalidade numérica pode ser adicionada utilizando-se a ferramenta de inserção de texto, conforme figura. Cardinalidade do Relacionamento Fonte: Bob (2011). As conectividades e cardinalidades são estabelecidas por afirmações muito concisas conhecidas como regras de negócio. Essas regras, resultantes da descrição precisa e detalhada do ambiente de dados de uma organização, também estabelecem as entidades, atributos, relacionamentos, conectividades, cardinalidades e restrições do ER. Como as regras de negócio definem os componentes do ER, assegurar que todas estejam identificadas é uma parte importante do trabalho de um projetista de banco de dados. Cardinalidade do Relacionamento Regras (Baseadas nos tipos de relacionamento). Regras do Relacionamento Fonte: Bob (2011). Um-para-um: A entidade A está associada no máximo a uma entidade B e uma entidade B está associada no máximo à entidade de A; Um-para-muitos: A entidade A está associada a qualquer número de entidades de B. Uma entidade de B, entretanto, pode estar associada no máximo a uma entidade de A; Muitos-para-um: A entidade A está associada no máximo a uma entidade de B. Uma entidade de B, entretanto, pode estar associada a qualquer número de entidades de A; Muitos-para-muitos: A entidade A está associada a qualquer número de entidades de B e uma entidade de B está associada a qualquer número de entidades de A. Regras do Relacionamento Um conjunto de entidades pode desempenhar mais do que um papel, o digrama abaixo mostra o indicador de papel concatenado a um nome de atributo do conjunto de entidades nos fornecerá uma ligação entre as entidades. Assinale abaixo, qual atributo representa este elo de ligação; a) Nome. b) CPF. c) Vaga. d) Funcionário. e) Reporta_a. Interatividade Funcionário Reporta__a CPF NOME VAGA Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Um conjunto de entidades pode desempenhar mais do que um papel, o digrama abaixo mostra o indicador de papel concatenado a um nome de atributo do conjunto de entidades nos fornecerá uma ligação entre as entidades. Assinale abaixo, qual atributo representa este elo de ligação; a) Nome. b) CPF. c) Vaga. d) Funcionário. e) Reporta_a. Resposta Funcionário Reporta__a CPF NOME VAGA Fonte: Adaptado de Ramakrishnan e Gehrke (2011). Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar redundâncias e anomalias observadas na inclusão, na exclusão e na alteração de registros. Primeira Forma Normal (1FN). Uma relação estará na Primeira Forma Normal 1FN se, e somente se, todos os domínios básicos contiverem somente valores atômicos (não contiverem grupos repetitivos). Normalização Procedimentos: identificar a chave primária da entidade; identificar o grupo repetitivo e removê-lo da entidade; criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo; a chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo. Normalização Primeira Forma Normal (1FN). Normalização Fonte: Livro-texto. ID Nome Telefone Endereço 1 João (11) 1234-5678 (11) 2345-6789 Rua Seis, 85 Morumbi 12536-965 2 Maria (11) 3456-7890 (11) 4567-8901 Rua Onze, 64 Moema 65985-963 3 José (11) 5678-9012 (11) 6789-0123 Praça Ramos Liberdade 68858-456 Aqui temos os mesmos grupos de dados agrupados para todas as linhas. Foi resolvido o problema do endereço, quebrando a informação em três colunas; porém, ainda persiste o problema da coluna telefone e, diferentemente do que se dá no caso anterior, não tem a mesma repetição do outro grupo. Normalização Fonte: Livro-texto. ID Nome Telefone Rua Bairro CEP 1 João (11) 1234-5678 (11) 2345-6789 Rua Seis, 85 Morumbi 12536-956 2 Maria (11) 3456-7890 (11) 4567-8901 Rua Onze, 64 Moema 65985-963 3 José (11) 5678-9012 (11) 6789-0123 (11) 7890-1234 Praça Ramos Liberdade 68858-456 Para resolvermos esse caso, teremos que quebrar essa tabela em duas. Normalização Fonte: Livro-texto. ID Nome Rua Bairro CEP 1 João Rua Seis, 85 Morumbi 12536-956 2 Maria Rua Onze, 64 Moema 65985-963 3 José Praça Ramos Liberdade 68858-456 A primeira, sem a informação de telefone. A segunda, apenas com a informação de telefone, associada com a primeira pelo código do cliente. Normalização Fonte: Livro-texto. Telefone ID (11) 1234-5678 1 (11) 2345-6789 1 (11) 3456-7890 2 (11) 4567-8901 2 (11) 5678-9012 3 Telefone ID (11) 6789-0123 3 (11) 7890-1234 3 Uma relação estará na Segunda Forma Normal 2FN se já estiver na 1FN e não existir nenhum atributo que não seja dependente de todo da chave da tabela. Procedimentos: identificar os atributos que não são funcionalmente dependentes de toda a chave primária; remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. Segunda Forma Normal (2FN) Exemplo: Não está na Segunda Forma Normal porque temos atributos que não dependem da chave primária. Segunda Forma Normal (2FN) Fonte: Livro-texto. C_Produto N_Produto Qtd Vl_Unitário Subtotal 1 1234 Impressora Matricial 4 100,00 400,00 2 2345 Impressora Jato de Tinta 3 200,00 600,00 3 3456 Impressora Laser 2 1000,00 2000,00 4 5678 Impressora Multifuncional 1 350,00 350,00 Para resolver, separamos a informação em duas tabelas: Segunda Forma Normal (2FN) Fonte: Livro-texto. C_Produto N_Produto 1234 Impressora Matricial 2345 Impressora Jato de Tinta 3456 Impressora Laser 5678 Impressora Multifuncional N_Produto C_Produto Qtd Vi_Unitário Subtotal 1 1234 4 100,00 400,00 2 2345 3 200,00 600,00 3 3456 2 1000,00 2000,00 4 5678 1 350,00 350,00 Para resolver, separamos a informação em duas tabelas: Segunda Forma Normal (2FN) Da tabela de pedidos foi retirada a descrição do produto, porque o atributo é dependente apenas do código do produto. Foi criada uma nova tabela chamada de Produto, composta de Código do Produto e Nome do Produto. Foi mantido o Código do Produto na tabela de Pedido para o relacionamento. Fonte: Livro-texto. C_Produto N_Produto 1234 Impressora Matricial 2345 Impressora Jato de Tinta 3456 Impressora Laser 5678 Impressora Multifuncional N_Produto C_Produto Qtd Vi_Unitário Subtotal 1 1234 4 100,00 400,00 2 2345 3 200,00 600,00 3 3456 2 1000,00 2000,00 4 5678 1 350,00 350,00 Uma tabela está na Terceira Forma Normal 3FN se estiver na 2FN e se nenhuma coluna não chave depender de outra coluna não chave. Procedimentos: identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave e removê-los; a chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes. Terceira Forma Normal (3FN) Terceira Forma Normal (3FN) Ainda existe um atributo que está relacionado a outro atributo não chave. O atributo SUBTOTAL é derivado do cálculo da quantidade que multiplica o valor unitário. Nesse caso, removemos a coluna, já que, entre outras coisas, ela era derivada de um cálculo. Fonte: Livro-texto. N_Produto C_Produto Qtd Vl_Unitário Subtotal 1 1234 4 100,00 400,00 2 2345 3 200,00 600,00 3 3456 2 1000,00 2000,00 4 5678 1 350,00 350,00 N_Produto C_Produto Qtd Vl_Unitário 1 1234 4 100,002 2345 3 200,00 3 3456 2 1000,00 4 5678 1 350,00 Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar redundâncias e anomalias observadas na inclusão, na exclusão e na alteração de registros. Uma relação estará na Primeira Forma Normal 1FN se, e somente se, todos os domínios básicos contiverem somente valores atômicos. Assinale abaixo qual dos itens não pode ser encontrado na Primeira Forma Normal 1FN. a) Identificar a chave primária da entidade. b) Identificar a chave composta de entidade. c) Identificar o grupo repetitivo e removê-lo da entidade. d) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo. e) A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo. Interatividade Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar redundâncias e anomalias observadas na inclusão, na exclusão e na alteração de registros. Uma relação estará na Primeira Forma Normal 1FN se, e somente se, todos os domínios básicos contiverem somente valores atômicos. Assinale abaixo qual dos itens não pode ser encontrado na Primeira Forma Normal 1FN. a) Identificar a chave primária da entidade. b) Identificar a chave composta de entidade. c) Identificar o grupo repetitivo e removê-lo da entidade. d) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo. e) A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo. Resposta ATÉ A PRÓXIMA! Profa. MSc. Sandra Bozolan UNIDADE III Administração de Banco de Dados A linguagem SQL padrão frequentemente é utilizada para representar as mais diversas funções relacionadas a banco de dados e programação. Ela suporta uma série de funções específicas que serão exploradas mais à frente: Linguagem SQL Fonte: Próprio autor. Linguagem T-SQL ou Transact-SQL utilizada no SGBD MS SQL Server é composta por: DDL (Data Definition Language): manipulação e estrutura do banco de dados; DML (Data Manipulation Language): permite a manutenção dos dados; DQL (Data Query Language): permite a pesquisa de dados; DCL (Data Control Language): permite o controle de autorização (acesso) dos dados. Linguagem SQL Linguagem de Definição de Dados (DDL – Data Definition Language): esse subconjunto da SQL suporta criação, exclusão e modificação das definições das tabelas e das visões. As restrições de integridade podem ser definidas nas tabelas, tanto quando a tabela é criada como posteriormente. Fornece ainda a dinâmica para criação e exclusão de índices. Os comandos SQL desse subconjunto são: CREATE: utilizado para criar objetos no banco de dados. Exemplo (criar uma tabela): CREATE TABLE CLIENTE (ID INT PRIMARY KEY, NOME VARCHAR(50)); Linguagem SQL DDL (Data Definition Language): Comandos responsáveis pela criação, alteração e deleção da estrutura de banco de dados, de tabelas e índices etc.; Comandos de DDL; CREATE: Criação de objetos do banco de dados; DROP: Exclusão de objetos do banco de dados; ALTER: Alteração da estrutura de objetos do banco de dados; USE: Selecionar um banco de dados para uso. Objetos manipulados pelos comandos acima: DATABASE, TABLE, VIEW, INDEX, TRIGGER, etc.... Linguagem SQL ALTER: utilizado para alterar a estrutura de um objeto. Exemplo (adicionar uma coluna em uma tabela existente): ALTER TABLE CLIENTE ADD SEXO CHAR(1); DROP: utilizado para remover um objeto do banco de dados. Exemplo (remover uma tabela): DROP TABLE CLIENTE; Linguagem SQL Linguagem SQL Executando o procedimento ALTER DATABASE, modificam-se os dados de um banco de dados ou os arquivos e grupos de arquivos associados ao banco de dados, adicionam ou removem-se arquivos e grupos de arquivos de um banco de dados, alteram-se os atributos de um banco de dados ou seus arquivos e grupos de arquivos, altera-se o agrupamento de banco de dados e definem-se opções de banco de dados. Instantâneos de banco de dados não podem ser modificados. Linguagem SQL DDL (Data Definition Language): Exemplos de sintaxe: Comando TABLE: tabela(s) ou entidade(s). Linguagem SQL Comando CREATE Objetivo Sintaxe Cria a estrutura de uma tabela (arquivo) definindo colunas (campos) e as chaves primárias e estrangeiras existentes. CREATE TABLE <nome-da-tabela>( <nome-coluna1><tipo-dado> [null | not null | unique], <nome-colunaN><tipo-dado> [null | not null | unique], PRIMARY KEY (nome-da-coluna-chave) ) DDL (Data Definition Language): Comando IDENTITY (Campo de autonumeração): coluna identidade definida pelo SQL Server, cria números em sequência para linhas que forem posteriormente inseridas na tabela em que a coluna de identidade está localizada. Comando PRIMARY KEY: Define a chave primária da tabela; Linguagem SQL A linguagem SQL frequentemente é utilizada para representar as mais diversas funções relacionadas a banco de dados e programação. Analise as afirmações abaixo: DDL: Linguagem de Definição de Dados; DML: Linguagem de Manipulação de Dados; DTL: Linguagem de Controle de Transações. Interatividade I. No item Linguagem de definição de dados, os comandos COMMIT e ROLLBACK são usados com muita frequência. II. No item Linguagem de manipulação de dados usamos o comando CREATE para criar tabelas e Banco de dados. III. No item Linguagem de controle de transações, além de criar Procedures e Functions, podemos ainda executá-los. IV. Para Executar uma atualização em um dado em banco devemos usar um comando que se encontra no item DML. Assinale a alternativa correta: a) Todas as afirmativas estão corretas. b) Apenas as afirmativas III e IV estão corretas. c) Apenas as afirmativas I, II e IV estão corretas. d) Apenas as afirmativas II e IV estão corretas. e) Apenas as afirmativas I e II estão corretas. Interatividade I. No item Linguagem de definição de dados, os comandos COMMIT e ROLLBACK são usados com muita frequência. II. No item Linguagem de manipulação de dados usamos o comando CREATE para criar tabelas e Banco de dados. III. No item Linguagem de controle de transações, além de criar Procedures e Functions, podemos ainda executá-los. IV. Para Executar uma atualização em um dado em banco devemos usar um comando que se encontra no item DML. Assinale a alternativa correta: a) Todas as afirmativas estão corretas. b) Apenas as afirmativas III e IV estão corretas. c) Apenas as afirmativas I, II e IV estão corretas. d) Apenas as afirmativas II e IV estão corretas. e) Apenas as afirmativas I e II estão corretas. Resposta Linguagem de Manipulação de Dados (DML – Data Manipulation Language): esse subconjunto da SQL permite que os usuários formulem consultas e insiram, excluam e modifiquem tuplas. Os comandos SQL desse subconjunto são: INSERT: utilizado para inserir registros (tuplas) em uma tabela. Exemplo: INSERT into CLIENTE(ID, NOME) values(1,'Rafaela'); Linguagem SQL UPDATE: utilizado para alterar valores de uma ou mais linhas (tuplas) de uma tabela. Exemplo: UPDATE CLIENTE set NOME = 'Roberta' WHERE ID = 1; DELETE: utilizado para excluir um ou mais registros (tupla) de uma tabela. Exemplo: DELETE FROM CLIENTE WHERE ID = 1; SELECT: o principal comando da SQL, o comando SELECT é utilizado para efetuar consultas no banco de dados. Exemplo: SELECT ID, NOME FROM CLIENTE; Linguagem SQL Os comandos básicos de manipulação de dados em SQL são: INSERT, SELECT, COMMIT, UPDATE, ROLLBACK E DELETE. INSERÇÃO DE DADOS EM LINHAS DE TABELAS A SQL exige a utilização do comando INSERT para inserir dados em uma tabela. A sintaxe básica desse comando será abordada abaixo: INSERT INTO nome da tabela VALUES (valor1, valor2,...,valorN). Comandosde manipulação de dados UPDATE ATUALIZAÇÃO DE LINHAS DA TABELA Utilize o comando UPDATE para modificar os dados de uma tabela. A sintaxe desse comando é: UPDATE nome da tabela SET nome da tabela = expressão [, nome da coluna=expressão] [WHERE lista de condições]; Comandos de manipulação de dados DELETE – EXCLUINDO LINHAS DA TABELA Um dos comandos mais fáceis de executar é o de exclusão de dados de uma tabela utilizando o comando DELETE. A sintaxe é: DELETE FROM nome da tabela [WHERE lista de condições] Comandos de manipulação de dados Linguagem de Consulta de Dados (DQL – Data Query Language): esse subconjunto tem apenas um comando e é considerado como o coringa em todos os procedimentos SQL. O comando SELECT permite ao usuário especificar uma consulta (“query”) como uma descrição do resultado desejado. SELECT realiza consultas em uma tabela; composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas; SELECT <função de agregação> <nome do campo da tabela> ou * (tudo) FROM <nome da tabela> Opcional: <cláusula> Linguagem SQL Operadores de comparação A qualificação da cláusula FROM é uma combinação booleana (isto é, uma expressão usando os conectivos lógicos AND, OR e NOT) de condições no formato expressão op expressão, em que op é um dos operadores de comparação { <, <=> = < >, >=, > }. Uma expressão é um nome de coluna, uma constante ou uma expressão (aritmética ou de string). Select e operações SÍMBOLO SIGNIFICADO Linguagem de Controle de Dados (DCL – Data Control Language): esse subconjunto da SQL suporta controlar o acesso aos dados, basicamente com dois comandos que permitem ou bloqueiam o acesso de usuários a dados. Vejamos estes comandos: GRANT: autoriza um usuário a executar alguma operação. Exemplo (dar permissão de consulta na tabela cliente para o usuário diogo): GRANT SELECT ON cliente TO diogo; REVOKE: restringe ou remove a permissão de um usuário executar alguma operação. Exemplo (não permitir que o usuário diogo crie tabelas no banco de dados): REVOKE CREATE TABLE FROM diogo; Linguagem SQL Sobre o comando UPDATE utilizado para modificar os dados de uma tabela, assinale abaixo a sintaxe correta desse comando. a) UPDATE NOMECAMPO FROM NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO’ ; b) UPDATE * FROM NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; c) UPDATE ALTER FROM NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; d) UPDATE NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; e) UPDATE NOMECAMPO FROM NOMETABELA ALTER NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; Interatividade Sobre o comando UPDATE utilizado para modificar os dados de uma tabela, assinale abaixo a sintaxe correta desse comando. a) UPDATE NOMECAMPO FROM NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO’ ; b) UPDATE * FROM NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; c) UPDATE ALTER FROM NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; d) UPDATE NOMETABELA SET NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; e) UPDATE NOMECAMPO FROM NOMETABELA ALTER NOMECAMPO = ‘DADOS CAMPO’ WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ; Resposta No SQL Server, cada coluna, variável local, expressão e parâmetro têm um tipo de dado relacionado. O tipo de dado é um atributo que especifica os tipos de dados que o objeto pode manter: dados inteiros, dados de caractere, dados monetários, data e hora, cadeias de caracteres binários etc. A seleção de tipos de dados costuma ser determinada pela natureza dos dados e pela utilização pretendida. Por exemplo: – Number(L,D), Integer, Smallint, Decimal(L,D) – Char(L), Varchar(L), Varchar2(L) – Date, Time, Timestamp – Entre outros Tipos de dados O comando JOIN ou junção é baseado na teoria dos conjuntos. Considere as tabelas como um conjunto de dados sobre um determinado assunto. A sintaxe do comando JOIN entre duas ou mais tabelas relacionadas é diferente entre os diversos dialetos do SQL. Para escrever o comando corretamente, você deverá consultar o manual do gerenciador de banco de dados. Os exemplos de JOIN que serão mostrados a seguir estão usando a sintaxe do SQL padrão ANSI. Caso você queira testar os comandos em um banco de dados, você precisa estar atento se ele é compatível com o SQL ANSI, pois a sintaxe do JOIN difere muito. Join Exemplo de sintaxe do comando SELECT com mais de uma tabela: vamos considerar as tabelas indicadas a seguir. Turma (id_turma, nome, sala, disciplina) Disciplina (disciplina, sigla, créditos). Queremos a lista das salas de cada turma, indicando o nome da turma e a sigla de cada disciplina correspondente. O comando SELECT ficará assim: SQL padrão ANSI: Join Para entender como esse JOIN funciona, com base na teoria dos conjuntos, vamos considerar as tabelas conjuntos, da seguinte forma: o conjunto das turmas será denominado conjunto A; o conjunto das disciplinas será o conjunto B, conforme a figura seguinte: Join Fonte: Livro-texto. Conjunto/Tabela A Conjunto/Tabela B INNER JOIN – é o tipo de JOIN mais usado. Retorna apenas os dados que existem em comum nas duas tabelas. Com base na teoria dos conjuntos, podemos dizer que é a intersecção entre os conjuntos, conforme representado na figura a seguir. Inner Join Fonte: Livro-texto. Conjunto/Tabela A Conjunto/Tabela B Usado quando é necessário retornar todos os dados de uma tabela, mesmo que não exista na outra tabela. O LEFT JOIN retorna os dados da tabela da esquerda, conforme a figura a seguir. Left Join Fonte: Livro-texto. Conjunto/Tabela A Conjunto/Tabela B Assim como o LEFT JOIN, é usado quando é necessário retornar todos os dados de uma tabela, mesmo que não existam na outra tabela. O RIGHT JOIN retorna os dados da tabela da direita, conforme a figura a seguir Right Join Fonte: Livro-texto. Conjunto/Tabela A Conjunto/Tabela B O JOIN funciona, com base na teoria dos conjuntos, e entre suas funções principais precisamos considerar o conjunto de tabelas que queremos relacionar. Com base nesta afirmação, assinale a alternativa de JOIN que retorna apenas os dados que existem em comum nas duas tabelas. a) Full Join b) Inner Join; c) Join; d) Left Join; e) Right Join; Interatividade O JOIN funciona, com base na teoria dos conjuntos, e entre suas funções principais precisamos considerar o conjunto de tabelas que queremos relacionar. Com base nesta afirmação, assinale a alternativa de JOIN que retorna apenas os dados que existem em comum nas duas tabelas. a) Full Join b) Inner Join; c) Join; d) Left Join; e) Right Join; Resposta O desenvolvimento de um sistema de informação envolve a análise e o projeto de dois componentes importantes: os dados e os processos. O projeto de dados é considerado a parte estática do sistema, uma vez que diz respeito a um universo persistente de características que dificilmente sofre modificações após a sua definição. O projeto de processos, por sua vez, é chamado de parte dinâmica, uma vez que as tarefas a serem realizadas sobre os dados podem variar, conforme ocorre a evolução do sistema. O projeto de um banco de dados é composto de quatro etapas, descritas a seguir: Etapas do projeto de banco de dados 33 Fase inicial de um projeto de banco de dados, que permite compreender quais dados devem ser armazenados, que informações os aplicativos devem manipular, quais as operações mais importantes e quais estão sujeitas a requisitos de desempenho. Reuniões informais com os usuários da aplicação devem ser realizadas visando definir quais alterações serão trabalhadas, a análise de toda a documentação disponívelsobre os aplicativos existentes que se deseja substituir ou complementar com o banco de dados, e assim por diante. Muitas metodologias são propostas com o foco de organizar e apresentar as informações coletadas, quase sempre se usam as ferramentas automatizadas. Levantamento de requisitos Fonte: https://supremapropaganda.com.br/agencia- de-marketing-digital-publicidade-e- propaganda-em-itajai-sc/ Nesta etapa, as coletas de dados da fase de análise de requisitos serão utilizadas para fornecer uma descrição de dados a serem armazenados, levando em consideração as informações mais importantes. O modelo Entidade Relacionamento (ER) disponibiliza diversos modelos de dados semânticos ou de alto nível, utilizados no projeto de banco de dados. Tem como objetivo criar uma descrição simples dos dados que melhor corresponda à visão ou à ideia, que os usuários e desenvolvedores têm em relação aos dados (e às pessoas e aos processos a serem representados nos dados). Projeto Conceitual Fonte: https://onsafety.com.br/entenda- como-funciona-gestao-a-vista/ A partir da conversão do projeto conceitual de banco de dados, um SGBD será escolhido para implementar as informações de um esquema ER para um esquema de banco de dados relacional. As três etapas restantes do projeto de banco de dados: A partir do esquema lógico, novas funções devem receber atenção; Desempenho e protótipos dos esquemas físicos; Aspectos de segurança que assegurem que os usuários sejam capazes de acessar os dados de que eles precisam, mas não os dados que desejamos ocultar deles. Projeto Lógico Fonte: Próprio autor. Nesta etapa, todas as alterações devem, ainda, suportar o refinamento maior do projeto de banco de dados, para assegurar que este satisfaça os critérios de desempenho desejados. Criação de índices em algumas tabelas e agrupamento de tabelas serão inicializados nesta fase, e pode envolver um reprojeto substancial de partes do esquema de banco de dados obtido das etapas anteriores de projeto. Projeto Físico Fonte: Livro-texto. Os bancos de dados possuem vários tipos e subtipos de dados. Recomendada a leitura do manual do banco de dados fornecido pelo fabricante para você conhecer os tipos de dados. É muito comum fazer algumas conversões de um tipo de dado para outro durante uma consulta dos dados armazenados no banco de dados. Alguns gerenciadores de bancos de dados conseguem fazer essas conversões diretamente, sem a necessidade de explicitar por meio de funções próprias de conversão. Os elementos de dados básicos e as estruturas de dados mais comuns, utilizadas em diversas linguagens e bancos de dados, estão a seguir. Tipos de dados (data types) Byte, Integer: números inteiros positivos, negativos ou o zero. Real: números inteiros positivos ou negativos compostos por uma parte inteira e outra fracionada. Exemplo: 8,2. Char: caractere alfanumérico como letras, algarismos ou símbolos especiais ocupando uma única posição de memória. Na verdade, esse elemento armazena um número da tabela ASCII. Boolean: armazena estados de uma operação lógica, podendo receber valores de verdadeiro ou falso, armazenando o bit 0 ou 1 dependendo do resultado. Elementos de dados Quando os dados estão organizados de forma coerente, temos uma estrutura de dados. As estruturas também são chamadas tipos de dados compostos e podem ser: Homogêneos: conjunto de dados formado pelo mesmo elemento de dado. Heterogêneos: conjunto de dados formado por mais de um elemento de dado. Elementos de dados As mais comuns serão descritas a seguir. Lembrando que nem todas as estruturas existem nos diferentes bancos de dados. Por exemplo, a estrutura de dados conhecida como vetor não existe no banco de dados Sybase, mas por meio do conceito de cursor podemos lidar com os dados com a mesma funcionalidade dos vetores. Vetores, também conhecidos como array, são uma estrutura de dados simples, linear e estática que mantém uma série finita de elementos de dados do mesmo tamanho e tipo. Estrutura de dados Lista. Cada elemento de dados referencia o seu sucessor. Os tipos de lista são: Lista encadeada: Os elementos são armazenados em sequência, não tendo como acessar um segundo elemento sem acessar o primeiro. Lista ordenada: Os elementos são armazenados seguindo algum critério de ordenação. • Fila Estruturas que se comportam como filas tradicionais e têm como política de funcionamento o FIFO (First in, first out – primeiro que entra, primeiro que sai). As inserções são realizadas no final, e a remoção no início. Existem duas operações nas filas, que são: Estrutura de dados Fonte: Livro-texto. FimComeço - Enqueue: adiciona um elemento ao final da fila. - Dequeue: remove um elemento do início da fila. Figura 33 – Exemplo de estrutura de dados em fila 5 3 7 1 4 Pilha É baseada no princípio LIFO (Last in, first out – último que entra, primeiro que sai). O topo é o único local possível de inserir elementos e a remoção da pilha só ocorre nas extremidades do topo, isto é, os elementos são removidos na ordem inversa da inserção. As funções que se aplicam a pilhas são: PUSH: insere um dado no topo da pilha. POP: remove o item no topo da pilha. TOP: retorna o elemento no topo. Estrutura de dados Árvores Os dados estão dispostos de forma hierárquica, tendo seu elemento principal chamado de raiz, que possui ligação com os outros elementos denominados ramos. Uma árvore binária é aquela em que cada ramo possui mais dois ramos, como na figura a seguir: Estrutura de dados Fonte: Livro-texto. Figura 34 – Exemplo de estrutura de dados em árvore O projeto de dados é considerado a parte estática do sistema, uma vez que diz respeito a um universo persistente de características que dificilmente sofre modificações após a sua definição. E durante sua criação podemos fazer uso de regras de mapeamento de um DER para o modelo de dados escolhido. Em qual etapa é possível encontrar essa descrição? a) Projeto lógico. b) Projeto conceitual. c) Levantamento de requisitos. d) Projeto físico. e) Validação e testes. Interatividade O projeto de dados é considerado a parte estática do sistema, uma vez que diz respeito a um universo persistente de características que dificilmente sofre modificações após a sua definição. E durante sua criação podemos fazer uso de regras de mapeamento de um DER para o modelo de dados escolhido. Em qual etapa é possível encontrar essa descrição? a) Projeto lógico. b) Projeto conceitual. c) Levantamento de requisitos. d) Projeto físico. e) Validação e testes. Resposta ATÉ A PRÓXIMA! Profa. MSc. Sandra Bozolan UNIDADE IV Administração de Banco de Dados De modo geral, os SGBD costumam armazenar os dados e as estruturas de bancos de dados em locais e arquivos diferentes de onde são armazenadas as informações sobre as operações efetuadas sobre os dados e as estruturas. Por exemplo, o SGBD Microsoft SQL Server armazena os dados em dois arquivos distintos: Um arquivo com a extensão mdf. Arquivo principal do banco de dados. Nesse arquivo são gravados os dados e a estrutura do banco de dados. Um arquivo com a extenção ldf. Arquivo de log do banco de dados. Grava todas as operações realizadas dentro do banco de dados. Funciona como um diário de tudo o que acontece lá dentro. Administração de banco de dados A escolha do banco de dados da empresa é uma decisão muito delicada, na medida em que irá acarretar troca de aplicativos e de hardware. Os investimentos diretamente aplicados no banco de dados costumam ser infinitamente menores do que aqueles a serem aplicados na empresa, visando sua perfeita adequação ao novo SGBD. Essa decisão, sempre que possível, deve ser tomada por especialistas em banco de dados, com profundos conhecimentos de análise de sistemas, de banco de dados e de software
Compartilhar